Например, я хотел бы не указывать пространства имен в коде на С++, но префикс, похоже, не имеет места, чтобы принять решение этой степени детализации. Есть ли скрытый файл конфигурации или что-то еще? Или мне просто не повезло?
Можно ли настроить стиль отступа XCode?
Ответ 1
Документация Apple XCode содержит полный список пользовательских настроек, многие из которых не имеют соответствующего пользовательского интерфейса. Однако я не вижу ничего, что связано с пространством имен, поэтому я думаю, что вам может быть не повезло.
Однако, я думал, что пройду по списку предпочтений, если это будет полезно.
Ответ 2
Я также попытался это сделать.
Ответ заключается в том, что тот, кто сделал форматирование кода в XCode, кажется совершенно не осведомленным о том, что существуют языки, отличные от Objective C, или стили кодирования, отличные от Apple.
Здесь список вещей, которые вы хотели бы сделать, не может быть выполнен в XCode.
- Отступы public: или private: всего одно место.
- Идентификаторы отступа пробегают нулевые пробелы.
- Альтернативный отступ для аргументов NOT относительно открывающей скобки.
Последнее нужно немного обсудить. Иногда имя функции или метода может быть довольно длинным, а также его первый аргумент, поэтому вы также должны иметь возможность отступать следующим образом:
someExcitingClass->AVeryLongMethodNameTraLaLaLaLa(
someLongExpressionOrVariableNameGoesHere,
anotherNameHere);
Конечно, вы можете захотеть извлечь подвыражения, чтобы сделать линию короче, но в реальном коде все это появляется постоянно, а создание подвыражений просто для того, чтобы соответствовать всем в разумной длине строки, раздражает.
Это ужасный позор, и я действительно не знаю, что делать. Я лично пишу в emacs и только погружаюсь в XCode в качестве системы сборки, но:-D это не для всех.
Ответ 3
Я вообще обходим отступ Xcode и имею пользователя script, который вызывает uncrustify в текущем отображаемом документе.
#!/bin/sh
#echo -n "%%%{PBXSelection}%%%"
uncrustify -q -c ~/.uncrustify/sample.cfg -l oc+
#echo -n "%%%{PBXSelection}%%%"
Примечания:
- uncrustify должен находиться в вашей PATH
- вам может потребоваться настроить расположение файла конфигурации
- если вы хотите, чтобы новый код был выбран в Xcode, раскомментируйте два выражения echo (это также можно использовать для создания "Выбор формата" script, а не "Форматировать все"
Script Настройки:
- Вход: весь документ
- Каталог: домашний каталог
- Выход: Заменить содержание документа
- Ошибки: отображение в предупреждении
Ответ 4
Как и в Xcode 4.3.1, нет доступных параметров отступа произвольного пространства имен, однако я преодолел это раздражение, перейдя в Preferences- > Text Editing- > Отступы и отключив "Отступы с поддержкой синтаксиса".
Ответ 5
Поскольку индентор 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)
i., общий 'NAMESPACE_OPEN/CLOSE' определяет и определяет конкретное для моего наиболее используемого пространства имен 'dsmsg'. Затем, когда я хочу открыть пространство имен, я использую
dsmsg_namespace_open
... code ...
dsmsg_namespace_close
Уродливый взломать, но мне очень нравится иметь конкретный, названный 'close'
Ответ 6
Другая возможность - использовать стиль Articstic (астайл). Учебник по интеграции astyle в XCode с использованием автомата и служб можно найти здесь: http://eatmyrandom.blogspot.com/2011/03/xcode-astyle-part-2-for-xcode-4x.html и http://youtu.be/d8bbE6_OHGc