Я применил IntelliJ Android code style template к проекту с открытым исходным кодом OneBusAway Android с помощью Android Studio, чтобы стандартизировать стиль и форматирование кода.Шаблон стиля IntelliJ Android с Android Studio удаляет пробелы, предшествующие множественным числам в строках
Проблема заключается в том, что применение шаблона толкает теги <xliff:g>
в strings.xml
на новую строку и удаляет пробел с предыдущей строки. Это эффективно предотвращает ввод какого-либо интервала перед множественным значением.
перед применением шаблона стиля:
<plurals name="stop_info_no_additional_data_hours_minutes">
<item quantity="one">No additional arrivals in the next 1 hour and %1$d minutes.</item>
<item quantity="other">No additional arrivals in the next <xliff:g id="count">%2$d</xliff:g> hours and %1$d minutes.</item>
</plurals>
.. это создает правильную строку:
No additional arrivals in the next 2 hours and 35 minutes.
После применения шаблона, он отсекает пространство, предшествующее множественное значение:
<plurals name="stop_info_no_additional_data_hours_minutes">
<item quantity="one">No additional arrivals in the next 1 hour and %1$d minutes.</item>
<item quantity="other">No additional arrivals in the next
<xliff:g id="count">%2$d</xliff:g>
hours and %1$d minutes.
</item>
</plurals>
... который приводит к тому, что строка:
No additional arrivals in the next2 hours and 35 minutes.
Я посмотрел на проекте Android Open Source, чтобы увидеть, как они справиться с этим, и это, кажется, что XML-тег остается на одной линии: https://github.com/android/platform_packages_apps_mms/blob/master/res/values/strings.xml#L690 https://github.com/android/platform_packages_apps_contacts/blob/master/res/values/strings.xml#L568
AOSP-х two exceptions to the line limit здесь не применимы ,
Мои варианты кажутся:
- Изменить шаблон стиля, чтобы вести за собой или завершающие пробелы (я бы предпочел, чтобы избежать этого, чтобы сохранить шаблон, идентичный AOSP)
- Ignore шаблон для эти строки, либо расширяя их за пределами 100 символов, либо добавляя ведущее пространство внутри тега
<xliff:g>
(я бы предпочел, чтобы весь проект находился под шаблоном, поэтому кто-то не переформатирует и не запускает эту проблему снова в будущем).
Я что-то упустил? Есть ли другой способ ввести здесь пространство (например, с использованием специальных/закодированных символов)?
Я также отслеживаю это как an issue для OneBusAway Android на Github, у которого есть скриншоты и дополнительные ссылки, если кому-то интересно.
UPDATE: Я пробовал форматировать этот же XML в Eclipse, используя Android Template for Eclipse, и это не вызывает этой проблемы. Другими словами, после применения шаблона XML не изменяется. Похоже, что это либо ошибка с Android Studio, либо проблема с шаблоном IntelliJ. Я предполагаю, что именно поэтому линии AOSP не повреждены.
EDIT: эта проблема была исправлена в Android Studio 0.4.4, но снова появилась в 0.8.9. См. AOSP Issue 65394.
Спасибо за исправление! –