Автоматическое форматирование источника Xcode

Как разработчик С#, я стал сильно зависеть от автоматического форматирования в Visual Studio 2008. В частности, я буду использовать комбинацию клавиш CTRL + K, D, чтобы заставить вещи вернуться в форму после моего неаккуратного реализация.

Теперь я пытаюсь изучить Objective-C и не хватает некоторых функций в Xcode, но, вероятно, ни один из них не так болезнен, как ярлык форматирования. Мои поисковые запросы Google не дали ничего встроенного, хотя, похоже, есть некоторые хаки. Я что-то пропустил или эта функция не существует изначально в Xcode?

Ответ 1

К сожалению, Xcode не имеет ничего такого широкого, как VS или Jalopy для Eclipse. Существуют некоторые несопоставимые функции, такие как Structure > Re-Indent, а также автоматическое форматирование, используемое при вставке кода в исходный файл. Я полностью с тобой; там определенно должно быть что-то там, чтобы помочь с проблемами форматирования.

Ответ 2

Это Ctrl + i.

Или для низкотехнологичных, вырезать и затем вставлять. Он будет переформатировать на пасте.

Ответ 3

Я бы хотел порекомендовать два варианта. Оба совершенно новые и развивающиеся.

ClangFormat-Xcode (бесплатно) - в каждом файле cmd + s переформатируется на определенный стиль и сохраняется, легко развертывается внутри команды

Плагин Xcode для форматирования вашего кода с использованием инструментов формата Clang, @travisjeffery.

С clang-format вы можете использовать Clang для форматирования кода в стилях как LLVM, Google, Chromium, Mozilla, WebKit или вашу собственную конфигурацию.

Objective-Clean (заплатил, еще не пробовал) - приложение повышает ошибки сборки, если правила предопределенного стиля нарушены - возможно, очень сложно использовать в команде, поэтому я не пробовал.

С очень минимальной настройкой вы можете заставить Xcode использовать наше приложение для обеспечения соблюдения ваши правила. Если вы когда-либо поймали нарушение одного из ваших правил, Xcode выдает ошибку сборки и направляет вас на линию нарушения.

Ответ 4

В xcode вы можете использовать этот ярлык для форматирования (повторного отступа) вашего исходного кода

  • Command + A для выбора всех исходных кодов

  • Ctrl + I для повторного отступа

Надеюсь, что это поможет.

Ответ 5

Мой личный fav PrettyC wantabe нескручивается: http://uncrustify.sourceforge.net/. Однако он получил несколько миллиардов вариантов, поэтому я также предлагаю вам загрузить UniversalIndentGUI_macx (также на sourceforge) графический интерфейс, который кто-то написал, чтобы настроить параметры так, как вам нравится.

Затем вы можете добавить этого пользовательского пользователя script, чтобы развернуть выделенный текст:

#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"

Ответ 6

Вы можете использовать Command + A для выбора всего содержимого и следующего Ctrl + I для форматирования выбранного содержимого.

Ответ 7

Cmd A + Ctrl I

Или Cmd A И затем Щелкните правой кнопкой мыши. Перейти к Структура → Повторный отступ

Ответ 8

Я также чувствую, что xcode должен иметь эту функцию. Поэтому я сделал расширение для этого: Swimat

Простая установка brew cask install swimat preview

Вы можете попробовать, посмотрите https://github.com/Jintin/Swimat для получения дополнительной информации.

Ответ 9

Вы также можете посмотреть https://github.com/octo-online/Xcode-formatter, который является форматированием на основе Uncrustify и интегрирован в Xcode. Работает как шарм.

Ответ 10

Подумайте о покупке лицензии на AppCode, интеллектуальную среду разработки Objective-C, которая помогает разработчикам iOS/OS X. AppCode полностью совместим с Xcode, но выходит за рамки Xcode, добавляя мощные функции.

AppCode a Objective-C вариант Intellij IDEA IDE из JetBrains. Они также являются авторами популярного расширения ReSharper для Visual Studio, главная цель которого здесь кажется отчаянной попыткой привнести опыт IDEA к продукту Microsoft.

AppCode использует собственный анализатор кода, который дает практически идеальный рефакторинг и поддержку навигации по коду. Существует также возможность повторного отступа и полностью переформатировать код (хотя я по-прежнему не хватает нескольких параметров форматирования в жестких случаях, но в основном он работает хорошо).

Конечно, вы можете попробовать пробную версию.

Ответ 11

Вы можете попробовать этот плагин XCode https://github.com/benoitsan/BBUncrustifyPlugin-Xcode

Просто клонируйте репозиторий github, откройте проект плагина в XCode и запустите его. Он будет установлен автоматически. Перезагрузите Xode перед использованием плагина форматирования.

Не забудьте установить утилиту uncrustify раньше. Homebrew, для exmaple

brew install uncrustify

P.S. Вы можете включить функцию "после сохранения форматирования" в меню "Редактирование" > "Формат" > "BBUncrustifyPlugin Preferences" > "Формат при сохранении"

Надеюсь, это будет полезно для u;-)

Ответ 12

Я предлагаю использовать ClangFormat. Чтобы установить, выполните следующие действия:

  • Установить менеджер пакетов Alcatraz для XCode Поддерживает Xcode 5+ и OS X 10.9 +
  • После установки перезапустите XCode.
  • Открыть XCode → Меню окна → Диспетчер пакетов
  • Найдите (найдите) ClangFormat и установите его. После установки снова перезапустите XCode.
  • Теперь в меню XCode вы можете использовать подменю Edit → Clang Format для форматирования.

Вы можете выбрать различные типы форматирования. Также, включив Format On Save, вы можете получить возможность автоматического форматирования.

введите описание изображения здесь

Ответ 13

Если ваша версия Xcode 3.x, вы должны использовать "Пользователь Script". Uncrustify, вот этот пример:

#!/bin/sh

echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"

добавить к вашему Xcode "Пользователь Script".

если Xcode версии 4.x, я думаю, вы должны прочитать этот блог: Форматирование кода в Xcode 4,

Таким образом, использовались "Apple Services", но это не очень хорошо, вызывают слишком медленный опыт, у кого-то есть одно и то же?

почему Apple drop "пользователь Script".... xD

Ответ 14

Во-первых, рассмотрите раздел "Отступы" XCode Preferences. Вы можете немного изменить настройки там...

Для более мелкозернистого управления см. документ XCode User Defaults из apple. (Может потребоваться регистрация разработчика для просмотра). Например, мне удалось отключить "отступ на вставке", введя в терминал следующее:

defaults write com.apple.XCODE PBXIndentOnPaste No

чтобы прочитать настройки:

defaults read com.apple.XCODE PBXIndentOnPaste

Ответ 15

Это работает только для языков с не выделенным пробелом, но мое решение состоит в том, чтобы удалить все пробелы, кроме пробелов, а затем добавить новую строку после символов, которые обычно определяют EOL (например, replace ';' на ';\n'), тогда делать вездесущее решение ^ + i.

Я использую Python.

Пример кода, просто замените имена файлов:

python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"

Это не идеально (пример: для циклов), но мне это нравится.

Ответ 16

CTRL + i

что он.

(no COMMAND + i)

Ответ 17

Мы можем использовать Xcode Formatter, который использует uncrustify, чтобы легко форматировать исходный код, поскольку ваша команда точно хочет быть!.

Установка Рекомендуемый способ - клонировать проект GitHub или загрузить его из https://github.com/octo-online/Xcode-formatter и добавить каталог CodeFormatter в проект Xcode, чтобы получить:   Форматирование кода на основе ярлыков Xcode: ярлык для форматирования измененных источников в текущей рабочей области   автоматическое форматирование кода: добавьте фазу сборки в свой проект для форматирования текущих источников при создании приложений   форматирование всех источников: форматируйте весь свой код с помощью одной командной строки ваши правила форматирования, совместно используемые проектом: отредактируйте и используйте один и тот же файл конфигурации с командой разработчиков проекта 1) Как настроить формат текста для вашего проекта Установите uncrustify Самый простой способ - использовать brew: $ brew установить uncrustify

Чтобы установить brew: $ ruby ​​-e "$ (curl -fsSkl raw.github.com/mxcl/homebrew/go)"

Убедитесь, что uncrustify находится в каталоге /usr/local/bin $, который uncrustify

Если ваша версия uncrustify ниже 0,60, вам может потребоваться установить ее вручную, поскольку в настоящее время добавлен синтаксис Objective-C. Добавьте каталог CodeFormatter рядом с файлом .xcodeproj

Убедитесь, что ваше приложение Xcode имеет имя "Xcode" (имя по умолчанию) Это имя можно увидеть в каталоге Applications/(или в вашем установочном каталоге Xcode). Будьте осторожны, если у вас есть несколько экземпляров Xcode на вашем Mac: убедитесь, что проект один на самом деле называется "Xcode"! (Почему это? Это имя используется для поиска в настоящее время открытых файлов Xcode. См. CodeFormatter/Uncrustify_opened_Xcode_sources.workflow appleScript). Установите службу автомата Uncrustify_opened_Xcode_sources.workflow Скопируйте этот файл в папку ~/Library/Services/(при необходимости создайте эту папку). Будьте осторожны: дважды щелкнув файл .workflow, вы его установите, но файл будет удален! Не забудьте оставить его копию для других пользователей.

Как форматировать открытые файлы при создании проекта Добавьте фазу сборки "run script", содержащую следующую строку:

sh CodeFormatter/scripts/formatOpendSources.sh

Как форматировать файлы в командной строке

Чтобы отформатировать открытые в настоящее время файлы, используйте formatOpenedSources.sh:

$sh CodeFormatter/scripts/formatOpendSources.sh

Чтобы отформатировать все файлы, используйте formatAllSources.sh:

$sh CodeFormatter/scripts/formatAllSources.sh PATH

PATH должен быть заменен вашим источником.

Е: г; если имя проекта - TestApp, тогда команда будет

$sh CodeFormatter/scripts/formatAllSources.sh TestApp

он будет искать все файлы в проекте и будет форматировать все файлы, как они настроены в файле uncrustify_objective_c.cfg.

Как изменить правила форматирования

Редактировать CodeFormatter/uncrustify_objective_c.cfg открыть с помощью TextEdit

Ответ 18

Вы можете увидеть и изменить любой ярлык по этому пути: Xcode → Preferences → Key Bindings.

Ответ 19

Ну, я искал простой способ. И узнайте на medium.

Сначала скопируйте текст json и подтвердите его на jsonlint или что-то подобное. Затем, чтобы скопировать из jsonlint, уже форматируется json. И вставьте код на Xcode с сохранением формата, ярлык shift + option + command + v