Kotlin formatting via ktfmt; bump scalafmt + GJF defaults#595
Merged
Conversation
…aults bleep fmt gains a third language branch backed by ktfmt 0.62, fetched from Maven Central. Config lives in an optional .kotlinfmt.conf (HOCON), mirroring .javafmt.conf — both tools have no native config of their own. Default style is kotlinlang (Kotlin coding conventions); google and meta are also available. Default versions bumped: scalafmt 3.5.9 → 3.11.1, google-java-format 1.33.0 → 1.35.0 (the 1.33.0 default would have 404'd until 2025-12 and is no longer current anyway). New FmtIT integration test exercises all three formatters end-to-end and verifies the per-language gate: a kotlin-only project does not create a .scalafmt.conf, proving scalafmt is never invoked. Fixes existing KotlinIT and SymbolProcessorResolverTest paths that wrote to src/main/kotlin/ and src/test/kotlin/. Bleep's default kotlin layout resolves to src/kotlin/ (sbt-scope defaults to ""), so the kotlin sources were never picked up — the suite was passing as a 4-test silent no-op. After the fix, the suite actually compiles kotlin and runs JUnit tests (runtime 1s → 27s). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
The new ktfmt branch in bleep fmt rightfully flagged these two existing .kt files since nothing had ever run a formatter over them. CI failure was a correctness signal, not a regression — apply the formatter so fmt --check passes on master once this lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Test runners (ScalaJsTestRunner, KotlinTestRunner.Js) and the BSP servers that drive them no longer assume `node` is on PATH; they take the node binary as a parameter and the BSP server resolves it via FetchNode using the project's jsNodeVersion (or constants.Node). SnapshotTest's cross-process GitLock now resolves .git correctly inside git worktrees and lives in the per-worktree git dir so concurrent test runs in different worktrees of the same repo no longer block each other. cli.scala now includes captured stderr in the exception message, so SnapshotTest's `index.lock`-retry actually triggers (it was matching the empty hand-crafted message before) and any failing subprocess gets a useful error instead of bare "exit code N". Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
🤖 Generated with Claude Code