Я пишу собственное правило lint, чтобы убедиться, что все строки ресурса имеют одинаковый суффикс. В противном случае мы получим предупреждение в IDE. И в то же время хотелось бы реализовать в этом детекторе quickfix. Однако я не знаю, как переименовать строковые ресурсы в kotlin файлах / макете, которые используют этот строковый ресурс
Я нашел несколько подсказок в этом видео (https://youtu.be/p8yX5-lPS6o?t=1170) но я не могу найти соответствующий пример для моей проблемы.
class StringResourceNamingDetector : ResourceXmlDetector() {
override fun appliesTo(folderType: ResourceFolderType) =
EnumSet.of(ResourceFolderType.VALUES).contains(folderType)
override fun getApplicableElements() = listOf(SdkConstants.TAG_STRING)
override fun visitElement(context: XmlContext, element: Element) {
val child = element.children().firstOrNull()
val stringResValue = child?.nodeValue ?: ""
val stringResName = element.getAttributeNode("name").value
val namingSuffix = "mysuffix"
if (!stringResName.endsWith(namingSuffix)) {
context.report(ISSUE_STRING_RESOURCE_NAMING, element, context.getValueLocation(element.getAttributeNode("name")), "String should contains $namingSuffix as suffix")
}
}
}