2012-01-29 2 views
32

구문 강조 표시 및 들여 쓰기 목적으로 Xcode 4가 사용자 정의 파일 확장자 (예 : * .lx)를 Objective-C로 인식하도록하고 싶습니다. 도구가 자동으로이 작업을 수행하게하려면 어떻게해야합니까?XCode가 구문 강조 표시를 위해 Objective-C로 사용자 지정 파일 확장명을 인식하도록 만드는 방법은 무엇입니까?

엑스 코드에서
+0

나는 이것을 자동으로하는 법을 모르지만, 파일 인스펙터 패널에서 이런 식으로 파일을 인식하도록 Xcode에 지시 할 수 있습니다. –

답변

8

파일이 편집기에서 활성화되어, 당신은 에디터 메뉴로 이동 -> 구문 색칠 -> 목표 - C

이 파일에 착색 목표 - C 구문을 적용합니다. 확장자에 상관없이 일반 텍스트 파일로 저를 위해 일했습니다.

또한

+10

내가 찾고있는 것은 자동으로 구문 강조하는 방법입니다. 수동이 아닙니다. – user1175914

+0

변경 한 파일 내에서 자동 구문 강조 표시가 나타납니다. 또는 '파일 유형 기본값'구문 강조 표시를 변경하여 해당 유형의 파일이 강조 표시되도록 하시겠습니까? 그렇다면이 해결 방법을 찾았습니다 ... 비록 테스트하지 않았습니다 : http://lists.apple.com/archives/xcode-users/2007/Dec/msg00679.html – pontidm

25

엑스 코드를 기반으로 사용자 인터페이스에서 파일을 표현하는 방법을 결정 자동 들여 쓰기 위해 일할 것 같았다 파일의 Uniform Type Identifier가. 내가 아는 한 기존 UTI에 파일 확장 태그를 추가 할 수는 없지만 매핑하려는 유형에 맞는 새 UTI를 선언 할 수 있습니다. 그러면 시스템은 지정된 파일 확장자를 새로운 UTI와 연관시키고 Xcode를 준수하며 다른 모든 UTI 인식 응용 프로그램은 파일을 매핑 된 유형의 소스 코드로 인식합니다.

새로운 UTI를 선언 할 위치를 생각해 볼 수 있습니다. 예를 들어,이 유형의 파일이 도구에 의해 작성되는 경우 해당 도구에 대한 번들이 가장 적합한 위치가됩니다. 더 나은 대안이없는 경우 스텁 응용 프로그램 번들을 만들고 거기에 새로운 UTI를 선언 할 수 있습니다.

  1. Xcode에서 새 Cocoa 응용 프로그램 프로젝트를 만듭니다.
  2. 프로젝트 설정에서 애플리케이션 타겟을 선택한 다음 정보 탭을 선택하십시오.
  3. 새로운 내 보낸 UTI를 만듭니다. UTI definition example
  4. 제어하는 ​​도메인에 대해 역 DNS 표기법을 사용하여 식별자 필드를 고유 한 이름으로 설정하십시오. 예 : com.yourdomain.objective-c-source.
  5. Conforms To 필드를 매핑 할 UTI로 설정하십시오 (예 : public.objective-c-source). system-declared UTIs 또는 Xcode의 Info.plist로 내보내는 목록을 찾아 보면 알 수 있습니다.
  6. 확장 필드를 새 UTI와 연결하려는 쉼표로 구분 된 확장 목록으로 설정하십시오.
  7. return 키를 누르거나 포커스를 다른 필드로 이동하여 마지막 필드의 변경을 적용하십시오.
  8. 응용 프로그램을 빌드하고 실행하여 Launch Services에 응용 프로그램을 등록하십시오.
  9. Xcode를 다시 시작하십시오.

Xcode는 이제 지정된 확장자를 가진 파일에 대해 적절한 구문 강조를 사용해야합니다.

그래도 작동하지 않으면 빌드 된 응용 프로그램의 Info.plist를 확인하여 예상되는 모든 정보가 뒤 공백없이 있는지 확인하십시오. 또한 UTI는 lsregister를 이용하여 등록되어있는 것을 확인할 수 있습니다

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump 

은 요로 감염의 식별자에 대한 출력을 검색하고 현재와 활성화되어 있는지 확인합니다.

+0

이것이 성공했습니다! C++ .ipp 파일의 경우 식별자 이름으로'public.c-plus-plus-source'를 사용했습니다. –

+0

이 작품! .ejs 파일을 사용하여 HTML fule과 연결했습니다. – kamyFC

+0

+1000 나를위한 작품 .leaf Vapor 파일 확장자. (-> public.html을 준수) –

10

엑스 코드는 "이 속성을 속성"에서 "형식"필드가 프로젝트에있는 파일에 대한 ("유틸리티"오른쪽 사이드에서 탭 왼쪽) : 위에서 볼 수 있듯이, 내가 설정

identity and type settings

우리 프로젝트의 Fastfile은 Ruby Script로 인식되어야합니다. 이것은 예상치 못한 .rb 확장자에도 불구하고 있습니다. (내 사용자 지정 색 구성표와) 예상 구문 강조를 항복 :

enter image description here

주 : 파일이 그룹 (안 폴더 참조 내부) 내에서 프로젝트에 추가됩니다이 비로소 작동하는 경우 :

fastlane group

이상적되지 않을 수도 있지만, 엑스 코드는 명시 적으로 프로젝트 파일에 추적되지 않는 파일의 속성을 유지할 수 없습니다. 폴더는 의도적으로 동적 인 Xcode 프로젝트이므로 Xcode 프로젝트의 내용에 대한 항목이 없습니다.

+0

감사합니다. 정확히 내가 필요로하는 것 – Flar

+0

Brian에게 감사드립니다. 이것은 정확히 내가 필요로하고 받아 들여지는 대답이어야합니다. –

관련 문제