2014-01-28 2 views
1

코드 스타일 및 형식을 표준화하기 위해 Android Studio를 사용하여 IntelliJ Android code style template을 오픈 소스 프로젝트 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> 

... 결과 문자열 :

,363,210
No additional arrivals in the next2 hours and 35 minutes. 

나는 그들이이 문제를 처리하는 방법을 볼 수있는 안드로이드 오픈 소스 프로젝트 보았다, 그리고 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. 변경 선행 또는 후행 공백 허용하는 스타일 템플릿
  2. 가에 대한 템플릿을 무시 (나는이 AOSP 동일한 템플릿을 유지하기 위해 피하기 위해 원합니다) 이 줄을 100 자 이상으로 확장하거나 <xliff:g> 태그 내부에 선행 공백을 추가하여 템플릿을 만듭니다 (전체 프로젝트를 템플릿 아래에 두어 나중에이 문제를 다시 포맷하고 트리거하지 않는 것이 좋습니다).

내가 누락 된 항목이 있습니까? 여기에 공백을 삽입하는 다른 방법이 있습니까 (예 : 특수 문자/인코딩 된 문자 사용)?

Github의 OneBusAway Android 용으로 an issue으로 추적하고 있습니다. 관심이있는 경우 스크린 샷과 추가 링크가 있습니다.

업데이트 :이 동일한 XML을 Android Template for Eclipse을 사용하는 Eclipse에서 포맷하려고 시도했지만이 문제가 발생하지 않습니다. 즉, 템플릿을 적용한 후에도 XML이 변경되지 않습니다. 그래서 이것은 Android Studio의 버그이거나 IntelliJ 템플릿의 문제 인 것 같습니다. 나는 이것이 AOSP 라인이 손상되지 않은 이유라고 가정하고 있습니다.

편집 :이 문제는 Android Studio 0.4.4에서 수정되었지만 0.8.9에서 다시 나타났습니다. 자세한 내용은 AOSP Issue 65394을 참조하십시오.

답변

관련 문제