Xcode 소스 자동 포맷
C# 개발자로서 저는 Visual Studio 2008의 자동 포맷에 크게 의존하게 되었습니다.구체적으로, 저는 저의 엉성한 구현 후에 + , 키보드 단축키를 사용하여 상황을 강제로 원래 상태로 되돌릴 것입니다.
저는 지금 Objective-C를 배우려고 노력하고 있으며 Xcode의 특정 기능이 누락되어 있지만 포맷 바로 가기만큼 고통스러운 기능은 없을 것입니다.제 구글 검색은 해킹이 있는 것처럼 보이지만 기본 제공되는 것은 아무것도 없습니다.내가 누락한 것이 있습니까? 아니면 이 기능이 Xcode에 기본적으로 존재하지 않습니까?
그것은 +입니다.
또는 로우테크의 경우 잘라낸 후 붙여넣습니다.붙여넣으면 다시 포맷됩니다.
안타깝게도 Xcode에는 VS나 Jalopy for Eclipse만큼 광범위한 기능이 없습니다.다음과 같은 몇 가지 상이한 기능이 있습니다.Structure > Re-Indent
소스 파일에 코드를 붙여넣을 때 사용되는 자동 형식 지정 기능도 제공합니다.하지만 저는 전적으로 당신의 의견에 동의합니다. 분명히 포맷 문제에 도움이 될 무언가가 있을 것입니다.
저는 고려할 가치가 있는 두 가지 옵션을 추천하고 싶습니다.상당히 새롭고 진화하는 것입니다.
ClangFormat-Xcode(무료) - 각 cmd+s 파일을 특정 스타일로 다시 포맷하고 저장하여 팀 내에서 쉽게 배포할 수 있습니다.
Crang의 포맷 도구를 사용하여 코드를 포맷하는 Xcode 플러그인, @travisjeffery.
Clang-format을 사용하면 Clang을 사용하여 LLVM, Google, Chromium, Mozilla, WebKit 또는 자신의 구성과 같은 스타일로 코드를 포맷할 수 있습니다.
목표 정리(유료, 아직 시도하지 않음) - 사전 정의된 스타일 규칙을 위반할 경우 앱 빌드 오류 발생 - 팀 내에서 사용하기가 상당히 어려울 수 있으므로 시도하지 않았습니다.
매우 최소한의 설정으로 Xcode가 우리 앱을 사용하여 규칙을 시행하도록 할 수 있습니다.만약 당신이 당신의 규칙 중 하나를 위반하는 것을 발견한다면, Xcode는 빌드 오류를 던지고 당신을 바로 공격 라인으로 데려갈 것입니다.
xcode에서 이 바로 가기를 사용하여 소스 코드를 다시 들여쓸 수 있습니다.
들여쓰기 문제가 있는 파일로 이동하여 다음을 수행합니다.
Cmd 모든A 소스 코드를 선택
Ctrl 다시I 시작하기 위해
이게 도움이 되길 바랍니다.
제가 개인적으로 좋아하는 PrettyCrantabe는 확실하지 않습니다: http://uncrustify.sourceforge.net/ .그러나 수십억 개의 옵션이 있으므로 원하는 방식으로 옵션을 설정하는 데 도움이 되도록 누군가 작성한 GUI인 UniversalIndentGUI_macx를 다운로드하는 것이 좋습니다.
그런 다음 이 사용자 정의 사용자 스크립트를 추가하여 선택한 텍스트를 분류 취소할 수 있습니다.
#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"
+를 사용하여 모든 콘텐츠를 선택하고 다음 +를 사용하여 선택한 콘텐츠를 포맷할 수 있습니다.
저도 xcode에 이 기능이 있어야 한다고 생각합니다.그래서 저는 그것을 하기 위해 연장했습니다: 수영:
에 의한 단순 brew cask install swimat
사용해 보실 수 있습니다. 자세한 내용은 https://github.com/Jintin/Swimat 을 참조하십시오.
Cmd A + Ctrl I
또는 마우스A 오른쪽 단추를 클릭합니다.구조로 이동 -> 다시 들여쓰기
iOS/OS X 개발자에게 도움이 되는 지능형 Objective-CIDE인 AppCode의 라이센스를 구입하는 것을 고려해 보십시오.AppCode는 Xcode와 완벽하게 호환되지만 강력한 기능을 추가하는 데는 Xcode를 능가합니다.
JetBrain의 Intellij IDEA IDE의 Objective-C 변형을 AppCode합니다.그들은 또한 인기 있는 ReSharper를 Visual Studio로 확장한 저자이며, 여기서 주요 목적은 Microsoft 제품에 IDEA 경험을 제공하려는 필사적인 시도처럼 보입니다.
AppCode는 완벽에 가까운 리팩토링 및 코드 탐색 지원을 제공하는 자체 코드 분석기를 사용하고 있습니다.코드를 다시 들여쓰기하고 완전히 다시 포맷하는 기능도 있습니다(하드 케이스의 경우 몇 가지 포맷 설정이 계속 누락되지만 대부분 잘 작동합니다).
물론 평가판을 사용해 볼 수도 있습니다.
Swift - https://github.com/nicklockwood/SwiftFormat
Xcode Extension과 CLI 옵션을 제공합니다.
CTRL + i
바로 그겁니다.
(아니오 + )
또한 Uncrustify에 기반을 두고 Xcode에 통합된 포메터인 https://github.com/octo-online/Xcode-formatter 도 볼 수 있습니다.매력적으로 작동합니다.
XCode 플러그인 https://github.com/benoitsan/BBUncrustifyPlugin-Xcode 을 사용해 볼 수 있습니다.
github 저장소를 복제하고, XCode에서 플러그인 프로젝트를 열고 실행하기만 하면 됩니다.자동으로 설치됩니다.포맷터 플러그인을 사용하기 전에 Xode를 다시 시작합니다.
이전에 crustify utility를 설치하는 것을 잊지 마십시오.예를 들어, 홈브루
brew install uncrustify
추신. 편집 > 형식 코드 > BBuncrustify에서 "저장 포맷 후" 기능을 설정할 수 있습니다.플러그인 기본 설정 > 저장 시 포맷
이것이 당신에게 유용하기를 바랍니다;-)
ClangFormat을 사용하는 것이 좋습니다.설치하려면 다음 단계를 수행하십시오.
- XCode 지원 Xcode 5+ 및 OS X 10.9+용 Alcatraz 패키지 관리자 설치
- 설치 후 XCode를 다시 시작합니다.
- XCode 열기 -> 창 메뉴 -> 패키지 관리자
- ClangFormat을 검색(찾아)하여 설치합니다.설치 후 XCode를 다시 시작합니다.
- 이제 X Code 메뉴에서 Edit -> Clang Format 하위 메뉴를 사용하여 포맷할 수 있습니다.
다른 형식 유형을 선택할 수 있습니다.저장 시 포맷을 활성화하면 자동 포맷 기능을 얻을 수도 있습니다.
Xcode 버전 3.x의 경우 "사용자 스크립트" With Uncrustify를 사용해야 합니다. 여기 예:
#!/bin/sh
echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"
Xcode "사용자 스크립트"에 위의 내용을 추가합니다.
만약 Xcode 버전 4.x라면, 당신은 이 블로그를 읽어야 한다고 생각합니다: Xcode 4의 코드 포맷,
이런 식으로, "애플 서비스"를 사용했지만, 충분하지 않습니다. 너무 느린 경험을 하기 때문입니다. 누구나 같은 것을 가지고 있습니까?
Apple에서 "사용자 스크립트"를 삭제하는 이유... xD
먼저 XCode 기본 설정 "인덴테이션" 섹션을 검토합니다.당신은 그곳에서 꽤 많은 것들을 사용자 정의할 수 있습니다...
자세한 제어 방법은 Apple의 XCode User Defaults 문서를 참조하십시오.(보기 위해 개발자 로그인이 필요할 수 있습니다.)예를 들어 터미널에 다음을 입력하여 "붙여넣기에 들여쓰기"를 사용하지 않도록 설정할 수 있습니다.
defaults write com.apple.XCODE PBXIndentOnPaste No
설정을 다시 읽으려면:
defaults read com.apple.XCODE PBXIndentOnPaste
이것은 공백이 설명되지 않은 언어에만 사용할 수 있지만, 제 솔루션은 공백을 제외한 모든 공백을 제거한 다음 일반적으로 EOL을 설명하는 문자 뒤에 새 줄을 추가하고(예: ';'을 ';\n'으로 대체) 유비쿼터스 ^+i 솔루션을 수행하는 것입니다.
파이썬을 사용합니다.
예제 코드: 파일 이름을 바꿉니다.
python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"
완벽하지는 않지만(예: 루프용) 마음에 듭니다.
우리는 당신의 팀이 정확히 원하는 대로 당신의 소스 코드를 쉽게 포맷하기 위해 언커스티파이를 사용하는 Xcode 포메터를 사용할 수 있습니다!
설치 GitHub 프로젝트를 복제하거나 https://github에서 다운로드하는 것이 좋습니다.com/octo-online/Xcode-formatter를 사용하여 Xcode 프로젝트에 CodeFormatter 디렉토리를 추가하면 다음을 얻을 수 있습니다. Xcode 바로 가기 기반 코드 형식: 현재 작업 공간에서 수정된 소스를 형식화하는 바로 가기: 응용 프로그램이 모든 소스를 빌드할 때 현재 소스를 형식화하도록 프로젝트에 빌드 단계를 추가합니다. 형식: all프로젝트에서 공유하는 하나의 명령행 형식 지정 규칙이 포함된 코드: 프로젝트 개발 팀과 동일한 구성 파일 편집 및 사용 1) 프로젝트에 대한 코드 형식 설정 방법 설치 해제 가장 간단한 방법은 brew: $brew 설치 해제
brew를 설치하려면 $ruby –e "$(brew –fsSkl raw.github.com/mxcl/homebrew/go) ")를 설치합니다.
/usr/local/bin$에 crustify가 있는지 확인하고 crustify를 해제합니다.
버전이 0.60보다 낮은 경우 최신 Objective-C 구문이 최근에 추가되었기 때문에 수동으로 설치해야 할 수 있습니다..xcodeproj 파일 옆에 CodeFormatter 디렉토리를 추가
Xcode 응용프로그램 이름이 "Xcode"(기본 이름)인지 확인합니다. 응용프로그램/ 디렉토리(또는 사용자 정의 Xcode 설치 디렉토리)에서 이 이름을 볼 수 있습니다.Mac에 여러 개의 Xcode 인스턴스가 있는 경우 주의하십시오. 프로젝트의 인스턴스 이름이 실제로 "Xcode"인지 확인하십시오. (이유는 무엇입니까?)이 이름은 현재 열려 있는 Xcode 파일을 찾는 데 사용됩니다.코드 포맷터/Uncrustify_opened_Xcode_sources를 참조하십시오.워크플로 애플스크립트).자동화 서비스 Uncrustify_opened_Xcode_sources를 설치합니다.워크플로우 이 파일을 ~/라이브러리/서비스/폴더에 복사합니다(필요한 경우 이 폴더를 만듭니다).주의: .workflow 파일을 두 번 클릭하면 설치되지만 파일은 제거됩니다!다른 사용자에게 해당 복사본을 남겨 두어야 합니다.
프로젝트를 빌드할 때 열린 파일 형식 지정 방법 다음 줄이 포함된 빌드 단계 "실행 스크립트"를 추가합니다.
sh CodeFormatter/스크립트/formatOpenSources.쉬
명령줄에서 파일 형식 지정 방법
현재 열려 있는 파일을 포맷하려면 formatOpenedSources를 사용합니다.sh:
$sh CodeFormatter/스크립트/formatOpenSources.쉬
모든 파일을 포맷하려면 formatAllSources를 사용합니다.sh:
$sh CodeFormatter/스크립트/formatAllSources.shPATH
PATH는 원본 경로로 대체되어야 합니다.
E:g; 프로젝트 이름이 TestApp인 경우 명령은 다음과 같습니다.
$sh CodeFormatter/scripts/formatAllSources.sh TestApp
그러면 프로젝트의 모든 파일이 검색되고 모든 파일이 uncrustify_cfg 파일에 구성된 대로 형식이 지정됩니다.
포맷터의 규칙을 변경하는 방법
CodeFormatter 편집/uncrustify_objective_c.cfg가 TextEdit로 열립니다.
저는 쉬운 방법을 찾고 있었습니다.그리고 매체에 대해 알아보세요.
먼저 json 텍스트를 복사하고 jsonlint 또는 유사한 것에서 검증합니다.그런 다음 jsonlint에서 복사하려면 json이 이미 포맷되어 있습니다.그리고 Xcode에 바로 가기 + + + 형식을 유지한 채로 코드를 붙여넣습니다.
언급URL : https://stackoverflow.com/questions/1573968/xcode-source-automatic-formatting
'it-source' 카테고리의 다른 글
asyncio.vmdk_future vs.BaseEventLoop.create_task 대 단순 코루틴? (0) | 2023.05.26 |
---|---|
거부된 마스터 -> 마스터(비고속 포워드) (0) | 2023.05.26 |
Express.js req.body가 정의되지 않았습니다. (0) | 2023.05.26 |
mongodb에서 삭제된 공간을 자동 압축하시겠습니까? (0) | 2023.05.26 |
ActiveX 컨트롤이 비활성화되어 있습니까? (0) | 2023.05.26 |