diff --git a/lint-kit-checks/build.gradle b/lint-kit-checks/build.gradle index 88a5603..1411179 100644 --- a/lint-kit-checks/build.gradle +++ b/lint-kit-checks/build.gradle @@ -24,6 +24,10 @@ dependencies { testImplementation "com.android.tools.lint:lint-tests:$lintVersion" testImplementation "junit:junit:4.13.2" testImplementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" + + // External lint libraries + compileOnly 'com.vanniktech:lint-rules-android-lint:0.17.0' + compileOnly 'com.vanniktech:lint-rules-rxjava2-lint:0.17.0' } jar { diff --git a/lint-kit-checks/src/main/java/fr/afaucogney/mobile/android/kit/lint/IssueRegistry.kt b/lint-kit-checks/src/main/java/fr/afaucogney/mobile/android/kit/lint/IssueRegistry.kt index 3e7607b..0c3242f 100644 --- a/lint-kit-checks/src/main/java/fr/afaucogney/mobile/android/kit/lint/IssueRegistry.kt +++ b/lint-kit-checks/src/main/java/fr/afaucogney/mobile/android/kit/lint/IssueRegistry.kt @@ -5,6 +5,36 @@ package fr.afaucogney.mobile.android.kit.lint import com.android.tools.lint.client.api.IssueRegistry import com.android.tools.lint.detector.api.CURRENT_API import com.android.tools.lint.detector.api.Issue +import com.vanniktech.lintrules.android.ISSUE_COLOR_CASING +import com.vanniktech.lintrules.android.ISSUE_ERRONEOUS_LAYOUT_ATTRIBUTE +import com.vanniktech.lintrules.android.ISSUE_INVALID_IMPORT +import com.vanniktech.lintrules.android.ISSUE_INVALID_STRING +import com.vanniktech.lintrules.android.ISSUE_LAYOUT_FILE_NAME_MATCHES_CLASS +import com.vanniktech.lintrules.android.ISSUE_MATCHING_MENU_ID +import com.vanniktech.lintrules.android.ISSUE_MISSING_SCROLLBARS +import com.vanniktech.lintrules.android.ISSUE_MISSING_XML_HEADER +import com.vanniktech.lintrules.android.ISSUE_NAMING_PATTERN +import com.vanniktech.lintrules.android.ISSUE_RAW_COLOR +import com.vanniktech.lintrules.android.ISSUE_RAW_DIMEN +import com.vanniktech.lintrules.android.ISSUE_RESOURCES_GET_COLOR +import com.vanniktech.lintrules.android.ISSUE_RESOURCES_GET_COLOR_STATE_LIST +import com.vanniktech.lintrules.android.ISSUE_RESOURCES_GET_DRAWABLE +import com.vanniktech.lintrules.android.ISSUE_SHOULD_USE_STATIC_IMPORT +import com.vanniktech.lintrules.android.ISSUE_SUPERFLUOUS_MARGIN_DECLARATION +import com.vanniktech.lintrules.android.ISSUE_SUPERFLUOUS_NAME_SPACE +import com.vanniktech.lintrules.android.ISSUE_SUPERFLUOUS_PADDING_DECLARATION +import com.vanniktech.lintrules.android.ISSUE_UNSUPPORTED_LAYOUT_ATTRIBUTE +import com.vanniktech.lintrules.android.ISSUE_UNUSED_MERGE_ATTRIBUTES +import com.vanniktech.lintrules.android.ISSUE_WRONG_ANNOTATION_ORDER +import com.vanniktech.lintrules.android.ISSUE_WRONG_CONSTRAINT_LAYOUT_USAGE +import com.vanniktech.lintrules.android.ISSUE_WRONG_DRAWABLE_NAME +import com.vanniktech.lintrules.android.ISSUE_WRONG_GLOBAL_ICON_COLOR +import com.vanniktech.lintrules.android.ISSUE_WRONG_LAYOUT_NAME +import com.vanniktech.lintrules.android.ISSUE_WRONG_MENU_ID_FORMAT +import com.vanniktech.lintrules.android.ISSUE_WRONG_VIEW_ID_FORMAT +import com.vanniktech.lintrules.android.ISSUE_XML_SPACING +import com.vanniktech.lintrules.rxjava2.ISSUE_DEFAULT_SCHEDULER +import com.vanniktech.lintrules.rxjava2.ISSUE_METHOD_MISSING_CHECK_RETURN_VALUE import fr.afaucogney.mobile.android.kit.lint.rules.common.WellSeparatorDetector import fr.afaucogney.mobile.android.kit.lint.rules.contract.* import fr.afaucogney.mobile.android.kit.lint.rules.depreciation.AutodisposeStillImportedDetector @@ -50,5 +80,51 @@ class IssueRegistry : IssueRegistry() { // Architecture // Android-Lint + + // Resources + ISSUE_RAW_COLOR, + ISSUE_RAW_DIMEN, + ISSUE_COLOR_CASING, + ISSUE_INVALID_STRING, + ISSUE_INVALID_IMPORT, + ISSUE_RESOURCES_GET_COLOR, + ISSUE_RESOURCES_GET_DRAWABLE, + ISSUE_RESOURCES_GET_COLOR_STATE_LIST, + + // Layout + ISSUE_ERRONEOUS_LAYOUT_ATTRIBUTE, + ISSUE_LAYOUT_FILE_NAME_MATCHES_CLASS, + ISSUE_MISSING_SCROLLBARS, + ISSUE_SUPERFLUOUS_MARGIN_DECLARATION, + ISSUE_SUPERFLUOUS_PADDING_DECLARATION, + ISSUE_UNSUPPORTED_LAYOUT_ATTRIBUTE, + ISSUE_UNUSED_MERGE_ATTRIBUTES, + ISSUE_WRONG_CONSTRAINT_LAYOUT_USAGE, + ISSUE_WRONG_VIEW_ID_FORMAT, + + // Menu + ISSUE_MATCHING_MENU_ID, + ISSUE_WRONG_MENU_ID_FORMAT, + + // Files + ISSUE_SUPERFLUOUS_NAME_SPACE, + ISSUE_MISSING_XML_HEADER, + ISSUE_WRONG_DRAWABLE_NAME, + ISSUE_XML_SPACING, + + // Naming + ISSUE_NAMING_PATTERN, + ISSUE_WRONG_LAYOUT_NAME, + + // Clearness + ISSUE_SHOULD_USE_STATIC_IMPORT, + ISSUE_WRONG_ANNOTATION_ORDER, + + // Performance + ISSUE_WRONG_GLOBAL_ICON_COLOR, + + // RxJava Vannitech + ISSUE_METHOD_MISSING_CHECK_RETURN_VALUE, + ISSUE_DEFAULT_SCHEDULER, ) }