как выровнять код в xcode

О форматировании кода и User Scripts в Xcode 4

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM’a, на А можно попытаться эту рутину автоматизировать.

А пост будет о конкретной задаче, которую надо автоматизировать(Code Formatting) и о том, как все-таки расширить Xcode всякими полезными вкусностями для дальнейших автоматизаций. В прошлый раз это был Copy Paste Detector. А теперь пришло время Code-Formattera. Скажу сразу, что в здесь не поднимается вопрос, нужен ли автоматический Code-Formatter. Предполагается, что Вам он нужен. Если, все же не нужен — можно заглянуть под кат, чтобы вспомнить про возможность использовать внешние скрипты в Xcode.

Посмотрим, как они нам подходят.

Та я и руками поправлю! Я еще с Xcode 1.0 руками форматирую

Есть такие люди. Может, им и правда, не надо форматирование текста. Для тех, же, кому надо, но им лень:
как выровнять код в xcode. 9f454aa39253cc4aad8ed9d0758c4032. как выровнять код в xcode фото. как выровнять код в xcode-9f454aa39253cc4aad8ed9d0758c4032. картинка как выровнять код в xcode. картинка 9f454aa39253cc4aad8ed9d0758c4032. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Это я к тому, что если задача (в частности форматирование кода), достаточно большая, то автоматизация выигрывает на долгой дистанции. Все в конце концов сводится к временным затратам. Но, даже если время на написание скрипта + время решения задачи немного больше, по сравнению, если б эту задачу делали руками, то все же, стоит попытаться написать такой скрипт — опыт автоматизации все-таки.

В Xcode и так оно есть… Нету? Значит и не надо.

Мнение автора, относительно команды Reindent, встроенной в Xcode: недостаточно для полноценного форматирования кода. Однако, многие люди, разрабатывающие под Xcode как раз только его и используют. Иногда еще есть Code-Style. Иногда Code-Style где-то описан, и ему пытаются следовать.
Весь функционал Re-Indentа заключается в правильном выставлении пробелов/табов, а его настойки которого помещаются на одной вкладке меню Xcode. как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Хоть этот вариант и не пестрит разнообразностью настроек, но у него есть просто огромное преимущество. Он встроен в Xcode. Не надо ничего устанавливать, лезть в интернет и запускать скрипты. Выделяем кусок кода, нажимаем ^I. Может быть, именно эта часть нравится людям, яро защищающим Xcode.

Пользовательские скрипты? Так их же не стало в Xcode 4.

Да, в Xcode 4 много чего не стало, по сравнению с Xcode 3. Пользовательские скрипты как раз в ходят в список того, чего не стало в Xcode 4. Люди в свое время были очень этим разочарованы.

Однако, добрые люди подумали-подумали, да и выкрутились. Стали использовать Automator Services. Не совсем то, что люди раньше подразумевали под User Scripts в Xcode 3, но, многие задачи, они, все же, решают.

Интеграция в Xcode

Благодаря добрым людям и OpenSource’у интеграция в Uncrustify в Xcode стала ну очень простой задачей.

Проект по интеграции Uncrustify в Xcode через Automator Services лежит на GitHub.

Ставим Uncrustify (В последний раз, я ставил uncrustify при помощи homebrew, в принципе, как и описано в самом проекте), складываем свои скрипты-сервисы в правильную папку(

/Library/Services/Automator/). Профит. Если все сделано правильно, теперь в меню в Xcode появятся дополнительные команды, позволяющие форматировать код, и которые можно использовать не выходя из Xcode.
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

А вот, что можно увидеть, выделив кусок кода и нажав правую кнопку:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Куда дальше?

При выполнении всех вышеперечисленных шагов, у Вас появилась возможность автоматически форматировать текст в Xcode.

Что делать дальше — зависит от того, что вам было нужно до этого 😉

Если изначально была поставлена задача по автоматическому/полуавтоматическому форматированию кода, то стоит заняться настройкой файла конфигурации uncrustify.cfg. В этом, может помочь Universal Indent GUI — кроссплатформенный редактор code-formatter’ов, в том числе и для uncrustify.

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

Альтернативы

Лично от себя я бы порекомендовал посмотреть в сторону AppCode, о котором в свое время уже писали на Хабре. Пусть, даже он и платный с 30-дневным бесплатным периодом. Вопрос о форматировании кода в Appcod’е решается совсем на другом уровне:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Источник

Как облегчить себе жизнь в Xcode. Shortcuts, tips&tricks

как выровнять код в xcode. learnhowtotypefast. как выровнять код в xcode фото. как выровнять код в xcode-learnhowtotypefast. картинка как выровнять код в xcode. картинка learnhowtotypefast. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Эффективная работа в любой IDE, да и не только в IDE, определяется в немалой степени тем, как много вы используете клавиатурных сокращений и всяческих фич, призванных облегчить вашу жизнь.
В этом посте я попытаюсь поделиться тем, что знаю и использую сам, что накопалось в сети но так же очень рассчитываю на вашу помощь. Поделитесь своими находками и трюками. По результатам думаю сделать какой-то PDF, вроде известного Xcode-рам pdf c шорткатами от Colin Wheeler (не знаете? тогда вот линк)

По поводу клавиатурных сокращений стоит просмотреть указанный PDF. Шорткатов там масса, но есть такие, которые я использую чаще других.
Определим символы для описания шорткатов:
⌃ — Control
⌘ — Command
⌥ — Alt
⇧ — Shift
⏎ — Enter/Return
⎋ — Escape
→←↑↓ — Cursor

⌃⌘↑ — Переключение между заголовочным файлом и реализацией. Наверное самое частоиспользуемое сочетание.
⌘T — Открытие новой вкладки (tab). Кстати, если кликнуть на заголовок таба, то можно задать ему имя, к примеру Debug.
⇧⌘Т — Открыть новое окно
⇧⌘] — переход к следующей вкладке
⇧⌘[ — переход к предыдущей вкладке
⌘W — закрыть текущую вкладку, или окно, если вкладка единственная

⌘N — создать новый файл
⌘S — сохранить текущий файл
⌥⌘S — сохранить все изменения во всех открытых файлах

При наборе:
Если надо убрать то, что предлагает автодополнение, то просто нажмите ⎋ Esc
и ⌥⎋ — если хочется увидеть автодополнение кода.

⌘F — поиск в текущем файле
⇧⌘F — поиск по всему проекту
⌘G — переход к следующему результату поиска
⇧⌘G — переход к предыдущему результату поиска

⌘+1..7 — переключение между навигаторами.

⌘/ — закомментировать/раскомментировать текущую строку или выделенный блок, раскомментирование работает корректно только если знак комментария стоит в начале строки.

⌘] — сдвинуть вправо строку/выделенный блок
⌘[ — сдвинуть влево строку/выделенный блок

⌘R — запустить прогармму на выполнение
⌘I — запустить программу с инструментами (allocations, leaks etc.)

⌃⌥⌘0 — показать/скрыть панель утилит (правая панель)
⌃⌥⌘1..4 — переключение между библиотеками темплейтов, сниппетов, объектов и медиаданных

Еще несколько шорткатов от arturphoenix
⇧⌘O — быстрое открытие файла или переход в пределах файла
⌘L — переход к строке с номером
⌃⌘E (при установке курсора на переменную) — быстрое переименование переменной в текущем scope.

Хотелось бы отдельно остановиться на сниппетах.
Помимо имеющихся сниппетов (фрагментов кода) можно создавать и свои или редактировать имеющиеся.
Создадим сниппет для #pragma mark
Откроем библиотеку сниппетов, нажав ⌃⌥⌘2, если она не открыта.
Для начала выделим в коде нужный фрагмент:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Далее мышкой перетаскиваем выделенное в окно снипеттов, открывается окно редактирования. Задаем имя:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Шоркат:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
область действия(видимости) сниппета (в нашем случае — all) и placeholder в который будет вставляться кастомный текст. Placeholder задается в таком формате — :
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Жмем Done и смотрим, что у нас получилось. В коде начинаем набирать mark:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Получаем подсказку автодополения, жмем и остается только вписать текст маркировки:
как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.
Очень удобная штука. Я себе много всякого добавил.

Жду ваших комментариев, быстрых клавиш и трюков для улучшения эффективности работы в Xcode!

Источник

Форматирование Кода В Xcode

есть ли в любом случае форматировать код в Xcode, как вы можете сделать в Eclipse или Netbenas. Я не нашел никакой опции в меню, есть ли горячая клавиша для этого или ее просто нет в Xcode?

10 ответов

выберите текст, а затем: Edit- > Format->Re-Indent

можно привязать к горячей клавише в настройках.

в Xcode 4 он был перемещен в Editor > Structure > Re-Indent команда (и имеет ярлык по умолчанию CTRL + Я ).

кроме повторного отступа (Edit > Format > Re-Indent), не совсем. Однако Xcode поддерживает скрипты (меню справа от меню окна), поэтому вы можете написать сценарий, который форматирует ваш код так, как вам нравится.

Edit: вот некоторые ссылки, которые касаются этой темы:

вот ярлыки, чтобы отформатировать код в Xcode

1.Форматировать весь код (весь класс/контроллер)

выделите весь код и пресс ⌘ + | на mac для форматирования кода.

2.Форматировать конкретный блок кода

выберите код и нажмите программную клавишу

⌘ + ] для правого хода и ⌘ + [ для левый ход

примечание: согласно @JavierGiovannini sugesstion вы можете сделать с помощью опции меню редактора

Не говоря, что это лучший подход, но для полноты, если вы вырезаете, а затем вставляете код обратно, Xcode автоматически отформатирует его для вас.

в V. 4 Вы можете внести некоторые коррективы через настройки xCode.

вы также можете выделить код, который хотите изменить отступ, и использовать команду re-indent

Расширения XCode 8

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

Источник

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

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

20 ответов:

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

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

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

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

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

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

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

команда + A чтобы выбрать все исходные коды

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

надеюсь, что это помогает.

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

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

можно использовать команда + A выбрать все содержимое и далее Ctrl + Я для форматирования выбранного контента.

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

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

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

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

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

простая установка с помощью brew cask install swimat как выровнять код в xcode. b5086055ba5aec2e3182fe64f38155a6. как выровнять код в xcode фото. как выровнять код в xcode-b5086055ba5aec2e3182fe64f38155a6. картинка как выровнять код в xcode. картинка b5086055ba5aec2e3182fe64f38155a6. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

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

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

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

Не забудьте установить uncrustify util раньше. Доморощенный, например

P. S. Вы можете включить «после сохранение функции форматирование» в меню «Редактирование» > формат кода > BBUncrustifyPlugin Настройки > Формат При Сохранении

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

вы можете выбрать различные типы форматирования. Также путем включения Формат При Сохранении вы можете получить возможность автоматического форматирования.

как выровнять код в xcode. f978ad2f9e7fbd60c618e4f21a6333ce. как выровнять код в xcode фото. как выровнять код в xcode-f978ad2f9e7fbd60c618e4f21a6333ce. картинка как выровнять код в xcode. картинка f978ad2f9e7fbd60c618e4f21a6333ce. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

добавить выше в свой Xcode «пользовательский скрипт».

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

почему apple drop » пользователь сценарий. «. xD

сначала изучите раздел «отступ» настроек XCode. Вы можете настроить вещи немного есть.

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

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

это работает только для языков с не обозначенными пробелами, но мое решение-удалить все пробелы, кроме пробелов, а затем добавить новую строку после символов, которые обычно обозначают EOL (например, заменить ‘; ‘ на ‘; \n’), а затем сделать вездесущий ^+i решение.

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

пример кода, просто замените имена:

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

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

проверьте, что uncrustify находится в /usr / local/bin долларов США, что uncrustify

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

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

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

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

$sh CodeFormatter/scripts/formatAllSources.sh путь

путь должен быть заменен вашим исходным путем.

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

$sh CodeFormatter/scripts/formatAllSources.sh TestApp

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

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

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

Источник

Как победить рутину, или Готовое приложение в Xcode за пару кликов

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

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

Также у многих разработчиков может быть свой подход к реализации выбранной архитектуры. Поэтому очень полезно иметь в своем арсенале заготовку приложения – общий скелет, к которому останется только добавлять новые модули, экраны и фичи. В этом материале я расскажу, как создать собственный шаблон приложения в Xcode.

Где находится сердце шаблона

Как часто вы создаете приложения и пишете вновь и вновь один и тот же код, создавая базу будущего продукта? Объявляете базовые классы, делаете хэлперы, закладываете архитектуру, создаете обертки… В такие моменты хочется иметь инструмент, который позволит мгновенно получать уже рабочее приложение с проработанной архитектурой и написанной базой для дальнейшей разработки.

Такой инструмент существует, и все мы им постоянно пользуемся, когда создаем ‘Single View App’ в Xcode.

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

Для легкого старта возьмем всем известный Single View App. Зайдите в Finder, нажмите комбинацию клавиш Cmd+Shift+G (переход к папке) и укажите путь:

Находим там «Single View App.xctemplate» и копируем, к примеру, на рабочий стол.
Как видите, шаблон состоит всего из 4 файлов:

Основные свойства файла конфигураций

Условно свойства TemplateInfo можно разделить на несколько категорий:

1. Разметка шаблона
Присвоение шаблону уникального идентификатора и дополнительных полей для отображения в среде Xcode.

Identifier
Уникальный идентификатор. Два шаблона с одинаковым ID одновременно существовать не могут. Также используется для наследования в других шаблонах.

Kind
Тип шаблона. Для проектов всегда используется Xcode.Xcode3.ProjectTemplateUnitKind.

Concrete
Поле, которое указывает, будет ли шаблон отображаться в списке при создании нового приложения. Есть смысл ставить NO, когда он вызывается из другого шаблона и не является независимым сам по себе. В остальных случаях всегда ставим YES.

Platforms
Определяет, для каких платформ используется шаблон. Полезен только для предотвращения наследования в шаблонах для других платформ (к примеру, при попытке импортировать шаблон для iOS в шаблон для WatchOS).

Name
Отображаемое имя для шаблона. По умолчанию используется имя директории *.xctemplate.

SortOrder
Порядковый номер. Если такого поля нет, считается как последний.

Description
Описание шаблона. В Xcode последних версий не отображается.

2. Наследование
Шаблоны в Xcode имеют очень полезное свойство: они могут включать в себя свойства и файлы из других шаблонов. Очень полезно, если есть необходимость расширить шаблон дополнительными возможностями из другого, при этом не копируя заново файлы и не редактируя файл конфигурации. Прямая аналогия – наследование в ООП.

3. Ancestors
Список из Identifier-шаблонов, свойства и файлы которых будут включены в проект.

4. Генерация содержимого
Наполнить новое приложение можно как уже готовыми файлами, так и прописав их генерацию в настройках.

P.S. Так как проекты могут быть созданы с использованием как Objective-C, так и Swift, то нужно учитывать, что генерация файлов должна быть прописана для разных языков отдельно.
Для этого создается поле Options, являющееся массивом. В качестве первого элемента создаем Dictionary и создаем два ключа. Первый – Identifier типа String со значением «languageChoice». Второй – Units, являющийся Dictionary. В Units создаем еще два Dictionary с названиями «Objective-C» и «Swift» соответственно. Все созданные в дальнейшем Definitions и Nodes помещаем внутрь этих директорий. Если нет привязки к языку (к примеру, мы хотим добавить xib, storyboard или прописать контент для какого-нибудь файла), то Definitions и Nodes могут быть объявлены на одном уровне с остальными параметрами.

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

5. Definitions
Здесь объявляется генерация кода и прописываются пути к файлам, которые будут добавлены в приложение.

Definitions является ассоциативным массивом и содержит в себе список файлов или переменных. Каждый файл, в свою очередь, тоже является ассоциативным массивом, который содержит в себе путь к файлу. Он может состоять из двух свойств – Path и Group.

К примеру, файл имеет путь:

Тогда Definition для него будет выглядеть следующим образом:

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

6. Nodes
После того, как мы указали пути расположения файлов, необходимо создать ссылки, которыми мы укажем либо на созданный файл, либо на содержимое. Nodes – обычный массив, элементами которого являются ключи из Definitions. Для указанного выше примера Nodes будет выглядеть так:

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Генерация кода внутри TemplateInfo.plist

В файл, созданный в TemplateInfo.plist, можно добавить код, написав его в Definitions и указав на него ссылку в Nodes. Это делается при помощи оператора «:» после указания файла, после чего пишется код. К примеру, в стандартном шаблоне «Page-Based App» вы можете увидеть, что в Definitions описано очень много генерации кода:

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Порядок расположения кода в файле зависит от порядка расположения ссылок в массиве Nodes. Если указанного файла не существует, то он будет создан.

В заранее созданных файлах и внутри TemplateInfo.plist работают следующие константы:

___COPYRIGHT___ Строка об авторских правах
___DATE___ Дата создания проекта (файла)
___DIRECTORY___ Полный путь к файлу
___FILEBASENAME___ Имя файла без расширения
___FILEEXTENSION___ Расширение файла
___FILENAME___ Полное имя файла
___FULLUSERNAME___ Имя пользователя, авторизованного в системе
___ORGANIZATIONNAME___ Название организации, указанное при создании проекта
___PACKAGENAME___ / ___PROJECTNAME___ Название продукта, указанное при создании проекта
___TIME___ Время, когда был создан проект (файл)
___USERNAME___ Имя учетной записи авторизованного пользователя

Редактирование окна настройки приложения

При создании шаблона можно также отредактировать окно настройки приложения, которое в дальнейшем будет появляться при вызове данного шаблона.

К примеру, для «Single View App» Apple предлагает нам несколько текстовых полей для ввода имени разработчика и названия организации, несколько чекбоксов для включения в проект юнит-тестов или CoreData, а также выпадающий список для выбора языка программирования. Все это регулируется полем Options – массивом из Dictionary. Для каждой опции доступен следующий перечень возможностей:

Identifier
Идентификатор, по которому можно менять или использовать значение, хранящееся в поле опции.

Default
Значение, которое для данного поля будет использоваться по умолчанию.

SortOrder
Порядковый номер, по которому данная опция будет тображаться в окне.

Nae
Заголовок для опции.

Type
Тип создаваемого поля. Бывают следующие типы полей:

Создаем шаблон приложения

Прежде чем начать, необходимо подготовить файлы с написанным кодом, который мы хотим видеть в приложении, созданном по нашему шаблону. Если у вас еще нет своей заготовки, то можете взять мою. Это простейшая реализация MVVM без использования каких-либо библиотек. Файлов здесь не много, но для примера достаточно. Разбирать дальнейшее создание шаблона я буду на их примере.

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

По этому пути Xcode будет искать шаблоны приложений. Папку Private вы можете назвать на свое усмотрение, главное, чтобы она находилась по этому пути. Таких директорий может быть несколько, но вложенные в них шаблоны должны иметь разный Identifier. В противном случае существование шаблона во всех кроме одной директории будет игнорироваться.

Скопированный ранее «Single View App.xctemplate» переименуем в «MVVM Application.xctemplate» и скопируем в папку Private. Если вы сейчас запустите Xcode и перейдете в меню создания нового приложения, то уже сможете увидеть в самом низу новый раздел Private, где будет один единственный шаблон «MVVM Application». Так как мы еще ничего не меняли, то при его использовании получим все тот же Single View App (который, к слову, пропал из списка базовых, т.к. имеет такой же Identifier).

Следующим шагом перенесем папку Presentation и два файла иконки – TemplateIcon.png и TemplateIcon@2x.png. Теперь необходимо поменять Identifier, чтобы Xcode видел наш шаблон как совершенно новый. К примеру, зададим Identifier как «MVVMTemplate». Теперь при создании нового приложения в Xcode мы увидим, что «Single View App» вернулся на положенное ему место, а в разделе Private красуется «MVVM Application» с нашей иконкой.

Далее посмотрим, от каких шаблонов наследуется «Single View App». Открываем TemplateInfo.plist и заходим в Ancestors, где видим:

Находятся шаблоны с этими идентификаторами там же, где и «Single View App». Давайте разбираться по порядку.

В первом шаблоне «Storyboard App.xctemplate» лежит только файл конфигураций, в котором можно увидеть поля Definitions и Nodes. В них прописано, что в качестве главного сториборда будет использоваться Main.storyboard, и указан путь к нему. Нам это не нужно, т.к. у нас уже есть файл MainScreen.storyboard, который мы хотим использовать в качестве главного. Поэтому мы удаляем из Ancestors шаблон «Storyboard App.xctemplate».

Далее идет шаблон «Core Data Cocoa Touch App.xctemplate». В его опциях добавляется поле checkbox для возможности использования CoreData, а в поле Units прописана вся необходимая кодогенерация и импорт файла ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld. Допустим, что CoreData нам тоже не нужен, и также удалим этого родителя.

Но вот проблема: если мы сейчас попытаемся создать приложение по нашему шаблону, то его не будет видно в списке. Дело в том, что удаленные нами родители в свою очередь тоже имели список Ancestors, в котором находился необходимый базовый шаблон «Cocoa Touch App Base», имеющий идентификатор com.apple.dt.unit.cocoaTouchApplicationBase. Добавив его в список Ancestors нашего шаблона, мы снова вернем его в список доступных. Внимательно изучив этот базовый шаблон, вы поймете, почему он так необходим, а мы идем дальше.

Теперь давайте пропишем все пути и ссылки для скопированных файлов. Так как код написан для Swift, делать это я буду только для него.

Presentation/Common/View Controller/Base/ViewController.swift
Presentation/Common/View Model/Base/ViewModel.swift
Presentation/Common/View Model/ViewModelHolder.swift
Presentation/Main Screen/MainScreen.storyboard
Presentation/Main Screen/View Controller/MainViewController.swift
Presentation/Main Screen/View Model/MainViewModel.swift

Получаем такой список:

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Теперь заполняем ссылки Nodes, выглядеть это будет так:

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

Осталось добавить последний штрих – поставить MainScreen.storyboard в качестве главного. Создаем Definitions и Nodes для всего файла и добавляем в них следующие поля:

Definitions:
Ключ
Info.plist:UIMainStoryboardFile

как выровнять код в xcode. image loader. как выровнять код в xcode фото. как выровнять код в xcode-image loader. картинка как выровнять код в xcode. картинка image loader. Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на А можно попытаться эту рутину автоматизировать.

В приложенном мною примере имеется готовый вариант файла TemplateInfo.plist.

В данной статье описаны не все функции для создания шаблонов и файлов. Вместить сюда описание каждого параметра попросту не представляется возможным. Поэтому в репозиторий, в котором лежит пример, я вложил документацию (неофициальную), в которой описаны все возможности и расписаны все существующие параметры (на момент существования Xcode 4). Большинство функций можно понять, покопавшись в базовых шаблонах от Apple, заодно увидев их реализацию. Я лишь описал необходимый минимум для простого создания незамысловатых шаблонов.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *