Dieses Repository enthält eine Sammlung von benutzerdefinierten Android/Kotlin -Lint -Checks, die wir in unseren Android- und Kotlin -Codebasen bei Slack verwenden.
Während wir Artefakte an Maven Central veröffentlichen, sind einige der Lintsprüfungen möglicherweise nur für die Codebasis von Slack relevant. Wir entwickeln diese offen für Knowledge-Share mit der Community.
Fügen Sie die Abhängigkeit der lintChecks -Konfiguration hinzu. Hinweis für nicht und nicht und com.android.lint und von Projekten.
dependencies {
lintChecks( " com.slack.lint:slack-lint-checks:<version> " )
} Das Paket slack.lint.mocking enthält mehrere Detektoren und Dienstprogramme zum Erkennen von Verspottung von Typen, die nicht verspottet werden sollten. Dies ähnelt DoNotMockChecker von ERRORPRRONE und fungiert als Durchsetzungsschicht für APIs und Klassen, die mit @DoNotMock kommentiert werden. Dies erkennt auch gemeinsame Typen, die niemals verspottet werden sollten, wie z. B. Kotlin data oder autovalue -Klassen.
Um einen inklusiveren Code zu schreiben, haben wir ein InclusiveNamingChecker Tool, um eine konfigurierbare Liste nicht inklusiver Namen zu überprüfen.
MoshiUsageDetector enthält eine Fülle von Schecks für allgemeine Programmiererfehler beim Schreiben von Klassen zur Verwendung mit Moshi und Moshix.
JavaOnlyDetector - Erkennt die Verwendung von Java -APIs aus Kotlin. Basierend auf der ursprünglichen unveröffentlichten Implementierung in Uber/Lint-Checks.DaggerKotlinIssuesDetector - erkennt einige bekannte Probleme bei der Verwendung von Dolch im Kotlin -Code.RetrofitUsageDetector - Erkennt einige häufige Probleme bei der Verwendung von Nachrüstungen.DenyListedApi - Erfasst die Verwendung von APIs, die einfach nicht verwendet werden sollten.MustUseNamedParams - können für Funktionen verwendet werden, die immer benannte Parameter verwenden sollten. Nützlich für APIs, die viele Parameter haben und/oder ihre Reihenfolge ändern können, und Sie möchten Änderungen bei der Quelle halten. Copyright 2021 Slack Technologies, LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.