개인 개발 환경 설정 모음
이 저장소는 개인적으로 사용하는 개발 환경 설정 파일들을 관리하기 위한 repo입니다.
설정파일의 경우 raw file 다운 시 확장자 맨 앞 . 가 사라질 수 있으니 git clone 추천드립니다.
ex) .wezterm.lua -> wezterm.lua
- God-gitignore
- Gemini Setup
- Github Setup(PR template, github actions(ktlint, detekt))
- EditorConfig for ktlint
- DetektConfig
- Wezterm
cp .wezterm.lua ~~ 위치에 .wezterm.lua 를 복사한다.
단축키는 tmux참고, ctrl+b가 leader(prefix)키
.god 확장자를 제거하고 프로젝트 루트 디렉토리에 .gitignore로 배치.
대부분의 IDE, 빌드 파일, OS 임시 파일 등을 포함하는 포괄적인 gitignore 파일입니다. 적용 후 프로젝트 특성에 맞게 추가 규칙을 검토하세요.
ktlint 설정 파일. rootProject 위치에 배치.
[versions]
# ktlint
ktlint = "14.0.1"
[plugins]
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }plugins {
alias(libs.plugins.ktlint)
alias(libs.plugins.ktlint) apply false // rootDir - build.gradle.kts
}gradle ktlintFormat // 자동 수정
gradle ktlintCheckconfig/detekt에 위치시킬 detekt 파일.
[versions]
# detekt
detekt = "1.23.8"
[plugins]
# detekt
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }plugins {
alias(libs.plugins.detekt)
alias(libs.plugins.detekt) apply false // rootDir - build.gradle.kts
}// rootDir - build.gradle.kts
val detektMergeSarif by tasks.registering(ReportMergeTask::class) {
output.set(layout.buildDirectory.file("reports/detekt/merged.sarif"))
}
tasks.register("detektAll") {
finalizedBy(detektMergeSarif)
}
subprojects {
plugins.withId("io.gitlab.arturbosch.detekt") {
val detektTaskProvider = tasks.named<Detekt>("detekt")
configure<DetektExtension> {
buildUponDefaultConfig = true
allRules = false
config.setFrom(files(rootProject.file("config/detekt/detekt.yml")))
autoCorrect = false
}
tasks.withType<Detekt>().configureEach {
jvmTarget = "11"
reports {
xml.required.set(false)
txt.required.set(false)
html.required.set(true)
sarif.required.set(true)
sarif.outputLocation.set(project.layout.buildDirectory.file("reports/detekt/${name}.sarif"))
md.required.set(false)
}
val mergeTaskProvider = rootProject.tasks.named<ReportMergeTask>("detektMergeSarif")
mergeTaskProvider.configure {
input.from(this@configureEach.sarifReportFile)
}
}
val mergeTaskProvider = rootProject.tasks.named<ReportMergeTask>("detektMergeSarif")
detektTaskProvider.configure {
finalizedBy(mergeTaskProvider)
}
rootProject.tasks.named("detektAll") {
dependsOn(detektTaskProvider)
}
}
}.gemini 폴더를 rootProject 위치에 배치 후 GitHub Configure에서 Gemini 사용 설정 ON
.github 폴더를 rootProject 위치에 배치
PR 올리면 detekt, ktlint 액션 자동 실행
⚠️ ISSUE_TEMPLATE는 아직 미구현
MIT- 개인 사용 목적의 설정 파일 모음입니다. 자유롭게 참고하실 수 있습니다.