Skip to content

mandoobox/oh-my-settings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oh-my-settings 🌌

License: MIT

개인 개발 환경 설정 모음

이 저장소는 개인적으로 사용하는 개발 환경 설정 파일들을 관리하기 위한 repo입니다.

설정파일의 경우 raw file 다운 시 확장자 맨 앞 . 가 사라질 수 있으니 git clone 추천드립니다.

ex) .wezterm.lua -> wezterm.lua

📋 목차

⚙️ settings

📦 project

  • God-gitignore
  • Gemini Setup
  • Github Setup(PR template, github actions(ktlint, detekt))

🤖 android

  • EditorConfig for ktlint
  • DetektConfig

💻 shell

  • Wezterm

🚀 install & apply

💻 Wezterm

cp .wezterm.lua ~

~ 위치에 .wezterm.lua 를 복사한다.

단축키는 tmux참고, ctrl+b가 leader(prefix)키

🚫 God-gitignore

.god 확장자를 제거하고 프로젝트 루트 디렉토리에 .gitignore로 배치.

대부분의 IDE, 빌드 파일, OS 임시 파일 등을 포함하는 포괄적인 gitignore 파일입니다. 적용 후 프로젝트 특성에 맞게 추가 규칙을 검토하세요.

📝 EditorConfig for Ktlint

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 ktlintCheck

🔍 DetektConfig

config/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

.gemini 폴더를 rootProject 위치에 배치 후 GitHub Configure에서 Gemini 사용 설정 ON

🔧 Github Setup(PR template, github actions(ktlint, detekt))

.github 폴더를 rootProject 위치에 배치

PR 올리면 detekt, ktlint 액션 자동 실행

⚠️ ISSUE_TEMPLATE는 아직 미구현

📄 LICENSE

MIT - 개인 사용 목적의 설정 파일 모음입니다. 자유롭게 참고하실 수 있습니다.

About

개인 개발환경 세팅

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors