在Xcode中删除默认的代码片段6

问题描述 投票:4回答:5

任何人都使用默认的代码片段在Xcode?有太多的无用的代码片段出现,这样,我甚至不希望有创建我的片段。因此,寻找对ST答案,但他们并没有太大的帮助。

是否有任何改善,所以我可以删除代码片断在Xcode 6?

对于进一步的问题,我可以导入或导出定制的片段,这样我就可以在不同的电脑上使用它们?

非常感谢,

xcode xcode6 code-snippets
5个回答
6
投票

是的,你可以删除默认的片段。由于片段被保存在XML在路径中的plist文件:

/applications/Xcode.app/contents/frameworks/IDE kit.framework/versions/A/resources/system code snippets.code snippets

您可以创建与下面的代码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。以上命名的文件夹中的文件替换它,也没有系统默认片段了。


2
投票

有一个应用程序称为SnippetEdit

它可以将你所有的Xcode默认片段用户片段。我在Xcode 7 Beta版和Xcode的6试过。

但是,你不应该删除在Xcode中,当他们默认片段用户片段。由于Xcode的只是重新创建这些:-(。

至少你可以改变他们的方式。更改标题和内容。


2
投票

我只使用快速的片段,并也想删除所有这些C,C ++和objC片段。在文件“/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets” A清理似乎工作:我只有三个留在代码片段迅速片断库面板中。这些片断的过滤和选择工作,但打回车键时,而在片段的过滤器领域的Xcode崩溃了好几次。所以,我恢复了旧文件,并再次有完整列表。

在计算器搜索这里说服我不要删除默认的代码段,但是将它们存储在具有相同ID和更高的版本号作为用户片段。

作为一个小的编程任务我创建了一个OS X的Projekt并用下面的代码就在产生AppDelegate.swift的在applicationDidFinishLaunching:

  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)")
            }
        }
    }

}

我用我的答案中发现的硬编码文件夹名称。所以,如果他们在Xcode的未来版本更改可能需要改变。

应用程序的运行后,用户代码片断文件夹中填充了约60清洁片段准备装满自己的源代码。


2
投票

在Xcode 10默认片段是在

/Applications/Xcode.app/Contents/PlugIns/IDESourceEditor.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets

要删除的内容将其更改为

<?xml version="1.0" encoding="UTF-8"?>
<!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>

1
投票

答案是:YES,

由用户生成的这些代码片段保存在路径

~/Library/Developer/Xcode/UserData/CodeSnippets

你可以简单地传递他们身边来保存和恢复它们。所以,你可以与他人分享,而另一方面,在其他Mac中使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.