@@ -396,6 +396,24 @@ class CliIntegrationTest {
396396 }
397397 }
398398
399+ @Test
400+ fun `rewriteProjectToUiStyleConventions removes type safe project accessors on CRLF settings files` () {
401+ val rootDir = Files .createTempDirectory(" composables-cli-ui-style-crlf" ).toFile()
402+ try {
403+ val projectDir = File (rootDir, " sample-app" ).apply { mkdirs() }
404+ File (projectDir, " settings.gradle.kts" ).writeText(
405+ " rootProject.name = \" sample-app\"\r\n\r\n enableFeaturePreview(\" TYPESAFE_PROJECT_ACCESSORS\" )\r\n\r\n include(\" :shared\" )\r\n " ,
406+ )
407+
408+ rewriteProjectToUiStyleConventions(projectDir)
409+
410+ val rewritten = File (projectDir, " settings.gradle.kts" ).readText()
411+ assertThat(rewritten).doesNotContain(" enableFeaturePreview(\" TYPESAFE_PROJECT_ACCESSORS\" )" )
412+ } finally {
413+ rootDir.deleteRecursively()
414+ }
415+ }
416+
399417 private fun rewriteProjectToUiStyleConventions (projectDir : File ) {
400418 val replacements = listOf (
401419 " libs.plugins.jetbrains.kotlin.multiplatform" to " libs.plugins.kotlin.multiplatform" ,
@@ -411,7 +429,6 @@ class CliIntegrationTest {
411429 " android-compileSdk" to " android-compile-sdk" ,
412430 " android-minSdk" to " android-min-sdk" ,
413431 " android-targetSdk" to " android-target-sdk" ,
414- " enableFeaturePreview(\" TYPESAFE_PROJECT_ACCESSORS\" )\n\n " to " " ,
415432 )
416433
417434 projectDir.walkTopDown()
@@ -420,7 +437,11 @@ class CliIntegrationTest {
420437 val updated = replacements.fold(file.readText()) { content, (from, to) ->
421438 content.replace(from, to)
422439 }
423- file.writeText(updated)
440+ val normalized = updated.replace(
441+ Regex (""" enableFeaturePreview\("TYPESAFE_PROJECT_ACCESSORS"\)\r?\n(?:\r?\n)?""" ),
442+ " " ,
443+ )
444+ file.writeText(normalized)
424445 }
425446 }
426447
0 commit comments