2014-12-03 2 views
2

누구나 Xcode에서 기본 코드 조각을 사용합니까? 쓸모없는 코드 스 니펫이 너무 많아서 거기에 스 니펫을 만들고 싶지 않습니다. 그래서 ST에 대한 답변을 찾았지만 많이 도움이되지 않았습니다.Xcode 6에서 기본 코드 스 니펫 제거

Xcode 6에서 코드 스 니펫을 제거 할 수있는 개선이 있습니까?

추가 질문이 있으면 사용자 정의 스 니펫을 가져 오거나 내보낼 수 있습니까? 다른 컴퓨터에서 사용할 수 있습니까?

고마워,

+0

기본 코드 조각이란 무엇을 의미합니까? viewdidload viewwill 메서드에 대해 이야기 했나요? init 메소드는 객체를 생성하는 데 필요하며 나머지 메소드는 필요하지 않으면 제거 할 수 있습니다. – iOSdev

답변

2

입니다 대답 : 당신은 단순히 저장하는 그들 주위를 전달할 수 있습니다

~/Library/Developer/Xcode/UserData/CodeSnippets

사용자가 생성

이 코드 조각 경로에 저장됩니다 YES, 및 그들을 복원하십시오. 다른 사람들과 공유 할 수 있고 다른 한편으로는 다른 Mac에서 사용할 수 있습니다.

+1

질문은 사용자가 작성한 스 니펫을 찾는 위치가 아니라 표준 스 니펫을 찾는 위치입니다. – Damasio

2

SnippetEdit

그것은 사용자 조각에 대한 모든 기본 엑스 코드 조각을 변형 할 수있다라는 응용 프로그램이 있습니다. 나는 엑스 코드 7 베타를 시도하고 엑스 코드 (6)

을하지만 당신은 그들이 기본 조각이었다 엑스 코드에서 사용자 조각을 삭제해서는 안된다. 엑스 코드는 단지 :-(을 재현 때문입니다.

을 적어도 당신은 그 (것)들에게 그 방법을 변경할 수 있습니다. 제목 및 내용을 변경합니다.

+0

아주 작은 도구. @iGodric을 공유해 주셔서 감사합니다. – Alix

2

을 나는 단지이 모든 C를 제거하기 위해 빠른 조각을 사용하여도 원하고있어 , C++ 및 objC 스 니펫. "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets"파일의 정리가 작동하는 것처럼 보였습니다. 코드 스 니펫 라이브러리 패널.이 스 니펫의 필터링 및 선택은 작동했지만 스 니펫의 필터 필드에서 Enter 키를 누르면 Xcode가 여러 번 충돌했습니다. 그래서 이전 파일을 복원하고 전체 목록을 다시 가져 왔습니다.

여기에서 stackoverflow를 검색하면 기본 스 니펫을 삭제하지 말고 사용자 스 니펫으로 동일한 ID와 상위 버전 번호로 저장하도록합니다.

func applicationDidFinishLaunching(aNotification: NSNotification) { 
    let filepathOfSystemSnippets = "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets" 

    let folderForUserSnippets = "\(NSHomeDirectory())/Library/Developer/Xcode/UserData/CodeSnippets" 

    print("reading \(filepathOfSystemSnippets)") 
    let arrayOfDicts = NSMutableArray(contentsOfFile: filepathOfSystemSnippets) 
    //  print("arry has \(arrayOfDicts?.count) entries") 
    for (ix, dict) in arrayOfDicts!.enumerate() { 
     let userDict = NSMutableDictionary(dictionary: dict as! [NSObject : AnyObject]) 
     userDict["IDECodeSnippetVersion"] = 2 
     userDict["IDECodeSnippetTitle"] = "free user snippet \(ix) " 
     userDict["IDECodeSnippetSummary"] = "" 
     userDict["IDECodeSnippetContents"] = "" 
     userDict["IDECodeSnippetLanguage"] = "Xcode.SourceCodeLanguage.Swift" 
     userDict["IDECodeSnippetCompletionPrefix"] = "" 
     userDict["IDECodeSnippetUserSnippet"] = true 

     if let id = dict["IDECodeSnippetIdentifier"] as? String { 
      let pathOfUserSnippet = "\(folderForUserSnippets)/\(id).codesnippet" 
      if NSFileManager.defaultManager().fileExistsAtPath(pathOfUserSnippet){ 
       print("snippet with id \(id) already exists in \(pathOfUserSnippet) -> don't write.") 
      } else { 
       userDict.writeToFile(pathOfUserSnippet, atomically: false) 
       //     print("write snippet with id \(id) in \(pathOfUserSnippet)") 
      } 
     } 
    } 

} 

는 내가 대답에있는 하드 코딩 된 폴더 이름을 사용 : 약간의 프로그래밍 작업으로

은 내가 OS X PROJEKT과 오른쪽 생성 된 AppDelegate.swift의 아래 applicationDidFinishLaunching에 다음 코드를 만들었습니다. Xcode의 향후 버전에서 변경 될 경우 변경해야 할 수도 있습니다.

응용 프로그램을 실행 한 후 사용자 스니 j 폴더에는 약 60 개의 정리 된 스니 j이 채워지고 소스 코드로 채워질 준비가됩니다.

4

예. 기본 스 니펫을 삭제할 수 있습니다. 조각 경로에 plist 파일에 XML에 저장되어 있기 때문에 :

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets

다음과 같은 코드로 TextEdit의 빈 조각 파일을 만들 수 있습니다

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 

<plist version="1.0"> 
    <array></array> 
</plist> 

을 그리고 SystemCodeSnippets.codesnippets로 저장합니다. 위의 폴더에있는 파일로 바꾸면 더 이상 기본 시스템 조각이 없습니다.

+1

좋은 답변입니다! 팁 : 응용 프로그램 폴더의 Xcode에서 폴더 구조가 보이지 않으면 Xcode를 마우스 오른쪽 단추로 클릭하고 "패키지 내용보기"를 선택하십시오. 여전히 Xcode 8에서 작동합니다. –

+1

그러나 Xcode 업데이트는 plist gile을 재설정 할 수 있으므로 다시 수행하거나 단순히 복사 파일 스크립트 – Binarian