2016-12-28 3 views
0

У меня есть проект с большой базой кода, где новые модули добавляются в Swift 3, но большая часть кода находится в Objective C. Как и многие проекты, наш стиль Swift использует 2 пространства для отступов. Однако базовая база Objective C использует 4 пробела.Настройки отступов Xcode для Swift vs. Objective C

Есть ли какой-либо способ в Xcode 8+ настроить отступ на основе типа файла? Если нет, есть ли лучшая альтернатива:

  1. Преобразование всех файлов Objective C в два пробела.
  2. Настройте объект Objective C 4 на код Swift из-за ограничений Xcode.

Оба эти метода выглядят как плохие идеи, но без поддержки Xcode для конфигурации каждого типа файлов, похоже, нет другого пути.

+3

Я не уверен, почему вы думаете, что использование 4-х пространственных отступов в Swift плох. Это стандартная версия Xcode и, безусловно, популярные проекты, такие как [Alamofire] (https://github.com/Alamofire/Alamofire), которые используют ее. –

+0

Вы можете оставить его на 4 места для проекта и использовать swiftformat для форматирования (и отступов) вашего кода после каждой сборки/фиксации и т. Д. использовать 2 пробела. – HAS

+0

Очевидно, я могу жить с 4 местами в Свифт. Кажется глупым, что Xcode не имеет простого способа поддержать то, что стало самым распространенным стандартом кодирования Swift, не навязывая его также и для Objective C. В конце концов, Apple выбрала Swift для использования с XCode. – davidgyoung

ответ

3

Чтобы ответить на ваш вопрос:

Есть ли способ в Xcode 8+ настроить отступы для каждого типа файла основе?

Да, есть. На File Inspector каждого файла вы можете установить Indent тип Spaces или Tab, а также номер spaces.

Я приложил скриншот здесь: enter image description here

Вы можете выбрать несколько файлов и обновления параметров одновременно. Настройки здесь перезапишут то, что вы установили в Preferences > Text Editing > Indentation.

+1

Это полезно, хотя и не идеально, потому что оно должно быть установлено вручную для каждого нового файла Swift. Знаете ли вы, сохранено ли это в файле проекта или в файле конкретного пользователя? Например, эта настройка делится между товарищами по команде? – davidgyoung