簡體   English   中英

是否可以自定義XCode的縮進樣式?

[英]Is it possible to customize the indent style of XCode?

例如,我不想在C ++代碼中縮進名稱空間,但是prefpane似乎沒有任何地方可以決定這種粒度。 有一些隱藏的配置文件或什么? 或者我只是運氣不好?

Apple的XCode文檔包含用戶首選項完整列表 ,其中許多沒有相應的UI。 我沒有看到任何特定於命名空間的內容,所以我認為你可能會失敗。

但是,我認為如果它有用,我會傳遞首選項列表。

由於Xcode壓頭僅使用詞法分析器,而不使用AST,因此可以通過定義花括號來“欺騙”格式。

我有:

#define NAMESPACE_OPEN(_name) namespace _name {
#define NAMESPACE_CLOSE(_name) }

#define dsmsg_namespace_open NAMESPACE_OPEN(dsmsg)
#define dsmsg_namespace_close NAMESPACE_CLOSE(dsmsg)

即,一個通用的'NAMESPACE_OPEN / CLOSE'定義,以及一個特定於我最常用的命名空間'dsmsg'的定義。 然后,每當我想打開命名空間時,我都會使用

dsmsg_namespace_open

... code ...

dsmsg_namespace_close

丑陋的黑客,但我非常喜歡有一個特定的,名為'close'

我也嘗試過這樣做。

答案是,在XCode中進行代碼格式化的人似乎完全沒有意識到除了Objective C之外還有其他語言,或者除了Apple之外的編碼樣式。

這是一個人們希望在XCode中無法完成的事情列表。

  1. 縮進公共:或私人:只有一個空間。
  2. 縮進命名空間零空間。
  3. 參數的替代縮進不是相對於左括號。

最后一個需要一點討論。 有時,函數或方法名稱可能很長,以及它的第一個參數,所以你也希望能夠像這樣縮進:

someExcitingClass->AVeryLongMethodNameTraLaLaLaLa(
    someLongExpressionOrVariableNameGoesHere,
    anotherNameHere);

當然,您可能希望提取子表達式以使線條更短,但在實際代碼中,這一直出現,並且創建子表達式以使所有內容適合合理的線長度是令人討厭的。

這是一個可怕的恥辱,我真的不知道該怎么做。 我個人用emacs寫作,只是作為一個構建系統進入XCode,但是:-並不適合所有人。

我完全繞過Xcode的縮進,並有一個用戶腳本在當前顯示的文檔上調用uncrustify

#!/bin/sh
#echo -n "%%%{PBXSelection}%%%"
uncrustify -q -c ~/.uncrustify/sample.cfg -l oc+
#echo -n "%%%{PBXSelection}%%%"

筆記:

  • unrustify必須在你的PATH中
  • 您可能需要調整配置文件的位置
  • 如果要在Xcode中選擇新代碼,請取消注釋兩個echo語句(這也可用於制作“格式選擇”腳本,而不是“全部格式化”)

腳本設置:

  • 輸入:整個文檔
  • 目錄:主目錄
  • 輸出:替換文檔內容
  • 錯誤:顯示在警報中

從Xcode 4.3.1開始,沒有自定義命名空間縮進選項可用,但是我通過導航到Preferences-> Text Editing-> Indentation並禁用“Syntax-aware indenting”克服了這種煩惱。

另一種可能性是使用Articstic Style(astyle)。 有關如何使用automator和服務將astyle集成到XCode的教程可以在這里找到: http: //eatmyrandom.blogspot.com/2011/03/xcode-astyle-part-2-for-xcode-4x.htmlhttp:/ /youtu.be/d8bbE6_OHGc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM