From 91e1cf5d83c3c0be66e0fb7b565b39133f635c43 Mon Sep 17 00:00:00 2001 From: Alexandru Resiga Date: Fri, 9 May 2025 16:23:45 +0200 Subject: [PATCH] KMT-1078 [compose resources, find usages] search for sanitized name GitOrigin-RevId: 9e785ea2fee206df48a081aa83ab4be805d319b3 --- .../compose/ide/plugin/resources/ComposeResourcesBase.kt | 5 +++-- .../resources/psi/ComposeResourcesGenerateAccessors.kt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/ComposeResourcesBase.kt b/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/ComposeResourcesBase.kt index 8362db6d5fce..e427836742fc 100644 --- a/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/ComposeResourcesBase.kt +++ b/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/ComposeResourcesBase.kt @@ -1,6 +1,7 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.compose.ide.plugin.resources +import com.intellij.compose.ide.plugin.resources.psi.asUnderscoredIdentifier import com.intellij.lang.xml.XMLLanguage import com.intellij.openapi.vfs.toNioPathOrNull import com.intellij.psi.PsiElement @@ -73,14 +74,14 @@ internal interface ComposeResourcesBase { internal interface ComposeResourcesFileBase : ComposeResourcesBase { override fun getPsiFile(element: PsiElement): PsiFile? = element as? PsiFile - override fun getName(element: PsiElement): String? = element.namedUnwrappedElement?.name?.withoutExtension + override fun getName(element: PsiElement): String? = element.namedUnwrappedElement?.name?.withoutExtension?.asUnderscoredIdentifier() override val validInnerComposeResourcesDirNames: Set get() = setOf("drawable", "font") } internal interface ComposeResourcesXmlBase : ComposeResourcesBase { override fun getPsiFile(element: PsiElement): PsiFile? = element.containingFile?.takeIf { it.language == XMLLanguage.INSTANCE } - override fun getName(element: PsiElement): String? = element.text + override fun getName(element: PsiElement): String? = element.text.asUnderscoredIdentifier() override val validInnerComposeResourcesDirNames: Set get() = setOf("values") } diff --git a/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/psi/ComposeResourcesGenerateAccessors.kt b/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/psi/ComposeResourcesGenerateAccessors.kt index 1e6b404eb1f3..6bebd54b65b1 100644 --- a/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/psi/ComposeResourcesGenerateAccessors.kt +++ b/plugins/compose/intellij.compose.ide.plugin.resources/src/com/intellij/compose/ide/plugin/resources/psi/ComposeResourcesGenerateAccessors.kt @@ -150,7 +150,7 @@ private fun Path.listNotHiddenFiles(): List = Files.list(this).filter { !Files.isHidden(it) }.toList() -private fun String.asUnderscoredIdentifier(): String = +internal fun String.asUnderscoredIdentifier(): String = replace('-', '_') .let { if (it.isNotEmpty() && it.first().isDigit()) "_$it" else it }