Как мне правильно настроить пользовательский порядок Checkstyle для работы с Android Studio?

#android #android-studio #intellij-idea #import #checkstyle

Вопрос:

Я вижу много нарушений порядка импорта в стиле проверки, когда я использую инструмент автоматического импорта или оптимизации импорта Android Studio.

Примерами являются:

 Wrong lexicographical order for 'coil.Coil' import. Should be before 'java.util.concurrent.TimeUnit'.  
 Wrong lexicographical order for 'androidx.annotation.Nullable' import. Should be before 'java.util.Collections.emptyList'.  
 Wrong lexicographical order for 'java.util.Map' import. Should be before 'org.json.JSONObject'.  

Почему Android Studio автоматически размещает coil после java, но размещает org перед пакетами java? Есть ли способ настроить поведение Android Studio или, что еще лучше, настроить стиль проверки, соответствующий поведению Android Studio?

Ответ №1:

Вы можете проверить настройки Android Studio в:

 Preferencesgt;Editorgt;Code Stylegt;Java  

По умолчанию в моей студии Android (Arctic Fox 2020.3.1 Патч 3) используется следующее: введите описание изображения здесь

Как вы можете видеть, есть несколько пакетов, к которым Android Studio относится по-разному. Вот почему последовательность импорта не совсем такая, как вы ожидали.

Вы можете использовать special группу из CustomImportOrder

 lt;module name="CustomImportOrder"gt;  lt;property name="sortImportsInGroupAlphabetically" value="true"/gt;  lt;property name="separateLineBetweenGroups" value="true"/gt;  lt;property name="customImportOrderRules" value="STATIC###SPECIAL_IMPORTS###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE"/gt;  lt;property name="specialImportsRegExp" value="^(android|androidx|com|junit|net|org)."/gt; lt;/modulegt;  

Примечание: Статический импорт может по-прежнему испытывать ту же проблему, но я не думаю, что есть возможность исправить это с помощью checkstyle.