2014-01-28 45 views
1

我將IntelliJ Android code style template應用於使用Android Studio的開源項目OneBusAway Android,以努力標準化代碼樣式和格式。使用Android Studio的IntelliJ Android代碼風格模板刪除字符串中多個空格之前的空格

問題是,應用模板會將strings.xml中的<xliff:g>標記壓入一個新行並剝離上一行的尾部空白。這有效地防止了在複數值之前引入任何間隔。

之前應用樣式模板:

<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開源項目,看看他們是如何處理這個問題,並似乎在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. 忽略的模板這些行可以通過擴展它們超過100個字符或在<xliff:g>標籤內添加前導空格(我希望將整個項目放在模板下,因此有人不會重新格式化並在將來再次觸發此問題)。

我錯過了什麼嗎?是否有另一種方法在這裏引入空間(例如,使用特殊/編碼字符)?

我也跟蹤這個爲an issue OneBusAway Android上Github,它有截圖和額外的鏈接,如果任何人有興趣。

更新:我嘗試在Eclipse中使用Android Template for Eclipse格式化此相同的XML,並且不會導致此問題。換句話說,在應用模板之後XML沒有改變。所以看起來這是Android Studio的一個bug或IntelliJ模板的問題。我假設這就是爲什麼AOSP線路完好無損。

編輯:此問題已在Android Studio 0.4.4中修復,但重新出現在0.8.9中。有關詳細信息,請參閱AOSP Issue 65394

回答