يحتوي هذا المستودع على مجموعة من عمليات التحقق من Android/Kotlin Lint المخصصة التي نستخدمها في قواعد رمز Android و Kotlin في Slack.
بينما ننشر القطع الأثرية إلى Maven Central ، قد تكون بعض الشيكات الوحيدة ذات صلة فقط بحماس الكود في Slack. نقوم بتطوير هذه في مفتوح إلى مشاركة المعرفة مع المجتمع.
أضف التبعية إلى تكوين lintChecks . ملاحظة بالنسبة للمشاريع غير الإكراهية ، يجب عليك تطبيق مكون الإضافي com.android.lint gradle لاستخدام هذا.
dependencies {
lintChecks( " com.slack.lint:slack-lint-checks:<version> " )
} تحتوي حزمة slack.lint.mocking على العديد من أجهزة الكشف والمرافق للكشف عن السخرية من الأنواع التي لا ينبغي السخرية منها. هذا مشابه لـ DoNotMockChecker الخاص بـ errorprone ويكون بمثابة طبقة إنفاذ لبرامج واجهات برمجة التطبيقات والفصول المشروحة مع @DoNotMock . هذا يكتشف أيضًا أنواعًا شائعة لا ينبغي أبدًا السخرية منها ، مثل فئات data Kotlin أو فئات Actovalue.
من أجل كتابة رمز أكثر شمولاً ، لدينا أداة InclusiveNamingChecker للتحقق من قائمة قابلة للتكوين بالأسماء غير الشاملة.
يحتوي MoshiUsageDetector على مجموعة كبيرة من الشيكات لأخطاء المبرمج الشائعة عند كتابة فصول لاستخدامها مع Moshi و Moshix.
JavaOnlyDetector - يكتشف استخدام واجهات برمجة التطبيقات Java فقط من Kotlin. استنادًا إلى التنفيذ الأصلي الذي لم يتم إصداره في Uber/Lint-Checks.DaggerKotlinIssuesDetector - يكتشف بعض المشكلات المعروفة عند استخدام الخنجر في رمز Kotlin.RetrofitUsageDetector - يكتشف بعض المشكلات الشائعة عند استخدام التحديثية.DenyListedApi - يكتشف استخدام واجهات برمجة التطبيقات التي لا ينبغي استخدامها.MustUseNamedParams - يمكن استخدامها في الوظائف التي يجب أن تستخدم دائمًا المعلمات المسماة. مفيد لواجهة برمجة التطبيقات التي تحتوي على الكثير من المعلمات و/أو قد تغير ترتيبها وتريد الحفاظ على التغييرات المتوافقة مع المصدر. 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.