Skip to content

hendraanggrian/rulebook

Repository files navigation

CircleCI Codecov
Maven Central Maven Central Snapshot OpenJDK
Package Index Package Index Test Python

Rulebook

Third-party rules for JVM and Python lint tools, meant to be used in conjunction with official ones. Most of the rules are opinionated personal code styles. However, some already exists in other linters, providing the same experience across multiple languages.

Language Linter Variants
Kotlin Ktlint Ktlint Official Style
Java Checkstyle Sun Style or Google Java Style
Groovy CodeNarc Groovy Style
Python Pylint Pylint Style or Google Python Style

View all rules

Download

Maven

repositories {
    mavenCentral()
}

dependencies {
    ktlint "com.hendraanggrian.rulebook:rulebook-ktlint:$version"
    checkstyle "com.hendraanggrian.rulebook:rulebook-checkstyle:$version"
    codenarc "com.hendraanggrian.rulebook:rulebook-codenarc:$version"
}

PyPI

pip install pylint regex rulebook-pylint

Usage

Ktlint

  • Apply Ktlint Integration to Gradle project.
  • Using configuration ktlint, add this project as dependency.
configurations {
    ktlint
}

dependencies {
    ktlint "com.hendraanggrian.rulebook:rulebook-ktlint:$libraryVersion"
}

// the rest of ktlint tasks' configuration

Checkstyle

  • Apply Checkstyle Gradle Plugin.
  • Using configuration checkstyle, add this project as dependency.
  • Point to local config file or put in /config/checkstyle/codenarc.xml.
plugins {
    checkstyle
}

checkstyle {
    toolVersion "$checkstyleVersion"
    configFile "path/to/rulebook_checkstyle.xml"
}

dependencies {
    checkstyle "com.hendraanggrian.rulebook:rulebook-checkstyle:$libraryVersion"
}

CodeNarc

  • Apply CodeNarc Gradle Plugin.
  • Using configuration codenarc, add this project as dependency.
  • Point to local config file or put in /config/codenarc/codenarc.xml.
plugins {
    codenarc
}

codenarc {
    toolVersion "$codenarcVersion"
    configFile "path/to/rulebook_codenarc.xml"
}

dependencies {
    codenarc "com.hendraanggrian.rulebook:rulebook-codenarc:$libraryVersion"
}

Pylint

  • Point config file to local pylintrc.

First time installation

Presuming the IDE is IntelliJ IDEA or PyCharm, consider applying the linter style to it.

Ktlint

Explained in Ktlint IntelliJ IDEA Configuration, using standard Kotlin coding conventions is enough:

  • In File > Settings > Editor > Code Style > Kotlin, set from Kotlin style guide.
  • Append kotlin.code.style=official to root gradle.properties.

Checkstyle

Explained in Google Java Format:

Pylint

Apply few changes in settings:

  • In File > Settings > Editor > Code Style > Python > Blank Lines:
    • Set After local imports and Before the first method to 0.
    • Set the rest to 1.