- もちだ(mike-neck)
- 株式会社クオカードで Kotlin と TypeScript と Terraform と YAML 書いてる
- JJUG CCC 2020 Fall(2020/11/7) で
jq
の話する - https://jjug.doorkeeper.jp/events/112842- Java の話は一切しない
ktlint
などで採用されている Google による Kotlin Style Guide のフォーマットがわりとよく使われている印象(あくまで)- あまり好きでない←
- インデント 4 個は多い、 2 個にしたい
- フォーマッターを定めているのはレビューなどで(若干好みに分類される)スタイルの話に終止してしまうような不毛な時間を費やさないため
ktfmt
- Facebook によるフォーマッター- google-java-format を内部的に利用したフォーマッター
- つまりインデントが 2 個
- こちらをメインに使っている
- google-java-format を内部的に利用したフォーマッター
com.diffplug.spotless
Gradle/Maven プラグイン を使ってる- マニアック(?)なフォーマッター
ktfmt
に早くから対応 - すぐに飛びついた
- マニアック(?)なフォーマッター
- Kotlin
- ktlint
- ktfmt
- Prettier
- Java
- google-java-format
- eclipse jdt
- ClangFormat
- Prettier
- Scala
- scalafmt
- Groovy
- Python
- C/C++
- SQL
- TypeScript
利用例
plugins {
id 'groovy-gradle-plugin'
}
repositories {
gradlePluginPortal()
}
dependencies {
// https://plugins.gradle.org/plugin/com.diffplug.spotless の legacy からコピー
implementation 'com.diffplug.spotless:spotless-plugin-gradle:5.7.0'
}
plugins {
id "com.diffplug.spotless"
}
spotless {
kotlin {
ktfmt()
}
}
plugins {
id "org.springframework.boot" version "2.3.4.RELEASE"
id "io.spring.dependency-management" version "1.0.10.RELEASE"
id 'org.jetbrains.kotlin.jvm' version '1.4.10'
id 'org.jetbrains.kotlin.plugin.spring' version "1.4.10"
id 'format-and-lint'
}