你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> Xcode 修改系統的代碼塊樣式 Code Snippet

Xcode 修改系統的代碼塊樣式 Code Snippet

編輯:IOS開發基礎

1.jpg

博客地址:http://blog.csdn.net/snowrain1108/article/details/49423385

Xcode在編碼的時候,系統代碼塊給我們提供了很大的便利。然而,有時候,也給我們帶來很大的困擾。

例如,系統的 if 代碼塊,大括號是緊跟括號之後的。 
 
但是現在呢,公司的代碼規范是要求另起一行。 
這裡寫圖片描述

那每次都得手動去調,的確是件很影響心情的事。

現在,就教大家怎麼去修改系統的代碼塊樣式。

Xcode內置代碼模板

Xcode的所有代碼模板是用一個plist格式xml文件描述的,這文件存儲在Xcode的安裝目錄: 
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets

注意:Xcode5.1之前是在這個目錄下 
/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/? 
SystemCodeSnippets.codesnippets

用任意文本編輯打開這個文件,如下顯示: 

這個文件是沒有權限去修改的。在這裡就是所有的Xcode代碼塊的配置,包括常見的 if , if else , switch,dispatch等相關代碼塊。

每一個 key 所對應的意義也很好理解。下面教你如何去理解。在此之前,你應該知道Xcode左下角有個花括號的頁簽,這裡面存儲了很多代碼提示模板,就是以上所配置的。 
這裡寫圖片描述

如果是自己拖拽進去的會有 User 標志。 
這裡寫圖片描述

自定義代碼模塊

關於拖拽進代碼塊的操作這裡不作敘述,有不會的可以上網查查或者留言回復我再告之。

自己定義的代碼塊是在以下目錄下: 
~/Library/Developer/Xcode/UserData/CodeSnippets/

注意:只有自己定義過代碼塊,才會在UserData目錄下存在CodeSnippets文件夾,否則是不存在的。

你可以試試寫個randomColor(`self.view.backgroundColor = [UIColorcolorWithRed:arc4random()%255/256.0f green:arc4random()%255/256.0f blue:arc4random()%255/256.0f alpha:1.0f])的代碼塊,拖進去,你會發現在CodeSnippets文件夾下多了這麼一個文件。 

這兒的名字是可以更改的,後綴要寫成.codesnippet 。

所以我把它更改成如下名字,便於分辨。 

用任意文本編輯器打開,和Xcode左下角對比,很容易明白各個key所對應的意思。 
 

這裡要注意的是以下幾個 key 。 
IDECodeSnippetIdentifier 是唯一標識符,其中 if 模板的唯一標記是D70E6D11-0297-4BAB-88AA-86D5D5CBBC5D,不能重名,重名即會覆蓋。 
這也是我們更改系統代碼塊樣式的核心思想!!!

IDECodeSnippetVersion 是版本號,一般系統的都是1,我們自己定義的寫成2。保持默認1也沒多大問題,只是Xcode有時會自動用標識符替換你的自定義命名,所以用2是比較合適的。

剩下的很重要的一步,如果是自定義的,一定要加以下這個 key, IDECodeSnippetUserSnippet ,定義為 true 。如果是自定義的而沒有這個字段,Xcode是會崩潰的。 

現在用 if 代碼塊對比一下系統的和自定義的區別。

系統的是

blob.png

自定義的是

blob.png

看到這兒,到底如何去修改系統的代碼塊樣式呢???

1.前往文件夾 
~/Library/Developer/Xcode/UserData/CodeSnippets

2.創建 if.codesnippet 文件

3.復制以下模板:

blob.png

4.找到系統的 if 代碼塊,粘貼 過來。

5.修改 IDECodeSnippetVersion 從1變成2。

6.增加 IDECodeSnippetUserSnippet 為 true。

7.保存,關閉。退出Xcode ,再打開,輸入 if ,看看此時的 if 樣式,大功告成!!!!

最後修改的 if 配置文件應是如下:

blob.png

總結

根據 if 的配置邏輯,完全可以再修改 if-else,switch,dispatch_once,dispatch_after等樣式。

以下是我修改的一些: 

這個CodeSnippets文件夾是可以復制給他人,別人安裝在相同的目錄下,便也有了相同的功能。很適合一個團隊的代碼規整。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved