2014-01-28 6 views
1

Я применил 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 здесь не применимы ,

Мои варианты кажутся:

  1. Изменить шаблон стиля, чтобы вести за собой или завершающие пробелы (я бы предпочел, чтобы избежать этого, чтобы сохранить шаблон, идентичный AOSP)
  2. 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.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^