Любой эквивалент ReSharper для XCode?

Я новичок в Xcode / Objective-C / Cocoa, но я быстро учусь и начинаю получать удовольствие от освоения нового языка, платформы и парадигмы.

Однако одно дело: так долго, что я использовал Visual Studio с R #, я был избалован такими инструментами кодирования, как рефакторинг, доработка и т. Д., И, насколько я могу судить, Xcode имеет довольно ограниченную встроенную поддержку для этого. вещи.

На этом замечании кто-нибудь знает, есть ли какие-либо надстройки или что-либо еще доступное для среды Xcode, которые добавляют помощников кодирования, таких как автоматическое создание скелетов реализации из определения интерфейса класса и т. Д.?

Я подозреваю, что нет, но я полагаю, что это не может помочь спросить.

21.08.2008 16:18:41
Kb. 22.04.2011 13:07:09
Нет, нет. Может быть, второй пилот на 50%
Nick Turner 6.06.2013 15:34:12
5 ОТВЕТОВ
РЕШЕНИЕ

Вы говорите так, будто ищете три основные вещи: шаблоны кода, инструменты рефакторинга и автозаполнение.

Хорошей новостью является то, что Xcode 3 и более поздние версии поставляются с превосходным автозаполнением и поддержкой шаблонов. По умолчанию вы должны явно запросить завершение, нажав клавишу escape. (Это на самом деле работает во всех NSTextViews; попробуйте!) Если вы хотите, чтобы дополнения появлялись автоматически, вы можете перейти в « Настройки» -> « Смысл кода» и настроить автоматическое появление всплывающего окна через несколько секунд. Вы должны найти хорошие дополнения для кода C и Objective-C и довольно хорошие дополнения для C ++.

Xcode также имеет надежную систему шаблонов / скелетов, которую вы можете использовать. Вы можете увидеть, какие шаблоны доступны по умолчанию, перейдя в Edit -> Insert Text Macro. Конечно, вы не хотите вставлять текстовые макросы с помощью мыши; это побеждает суть. Вместо этого у вас есть два варианта:

  1. Вернувшись в « Предпочтения» , перейдите в « Привязки клавиш» , а затем в разделе « Привязки клавиш меню» назначьте определенный ярлык для часто используемых макросов. Лично я не беспокоюсь об этом, но я знаю много замечательных разработчиков Mac, которые делают
  2. Используйте CompletionPrefix. По умолчанию почти все шаблоны имеют специальный префикс, который, если вы напечатаете, а затем нажмете управляющую клавишу, приведет к вставке шаблона. Вы можете использовать Control- / для перемещения между полями завершения.

    Вы можете увидеть полный список макросов по умолчанию Xcode и их ассоциированных CompletionPrefixэс в Crooked Спин .

    Вы также можете добавить свои собственные макросы или изменить настройки по умолчанию. Для этого отредактируйте файл /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro. Синтаксис должен быть самоочевидным, если не очень дружелюбным.

К сожалению, если вы зависимы от R #, вы будете разочарованы вашими возможностями рефакторинга. Базовый рефакторинг предоставляется в Xcode через контекстное меню или нажатием Shift-Apple-J. Оттуда вы можете извлекать и переименовывать методы, продвигать и понижать их через иерархию классов и некоторые другие общие операции. К сожалению, ни Xcode, ни какие-либо сторонние утилиты не предлагают ничего похожего на Resharper, так что в этом плане вам сейчас не повезло. К счастью, Apple уже продемонстрировала версии Xcode в работах, которые значительно улучшили возможности рефакторинга, так что, надеюсь, вам не придется ждать слишком долго, прежде чем ситуация начнет улучшаться.

39
31.08.2011 23:26:34
Я новичок в XCode и пытаюсь воспользоваться вашим советом, но боюсь, что он устарел или что-то упустил. В / Developer / Library / Xcode у меня нет каталога спецификаций, и если я выполняю поиск, я не нахожу файл, заканчивающийся на .xctxtmacro. Я использую XCode 3.2.5 - есть предложения?
Joseph DeCarlo 24.11.2010 18:04:44
После использования XCode каждый рабочий день в течение 2 лет он по-настоящему оценивает миллион очков за решиппером VisualStudio и Eclipse с точки зрения IDE, понимающего код, который вы пишете, и инструменты рефакторинга.
Mike S 31.03.2011 04:47:13
Использование XCode в настоящее время просто злит меня и подавляет. После более чем многолетней разработки он все еще слишком часто падает, имеет изобилие глюков и изобилие пользовательского интерфейса. Если бы не AppCode, я бы постоянно расстраивался и злился, пока писал код для iOS. Я кодирую это уже более 4 лет, и сейчас все так же плохо, как и тогда. Возможно, еще хуже. Какой позор.
John Gallagher 20.06.2012 22:56:45
xCode вылетает на меня каждые 2 дня и автозаполнение просто в порядке. Мне нравятся блоки, которые он создает, но поскольку возможность писать код быстрее, xCode не позволяет вам делать это. xCode - светлые годы позади резарпера
Nick Turner 6.06.2013 15:27:57

Xcode имеет рефакторинг для C и Objective-C. Просто выберите то, что вы хотите рефакторинг, выберите «Refactor ...» в строке меню или в контекстном меню, и вы получите окно с доступными рефакторингами. и область предварительного просмотра.

Xcode в настоящее время не имеет общедоступного плагина API; если есть определенные типы подключаемых модулей, которые вы хотите включить в Apple, отправляйте запросы на улучшение файлов в Bug Reporter . Таким образом, Apple может рассчитывать и отслеживать такие запросы.

Однако существуют сторонние инструменты, такие как Accessorizer и mogenerator(последний выпуск mogenerator 1.10), который вы можете использовать для ускорения различных задач разработки. Accessorizer помогает вам создавать методы доступа для ваших классов, а также mogeneratorвыполняет более сложную генерацию кода для классов управляемых объектов Core Data, которые моделируются с помощью инструментов моделирования Xcode.

5
21.08.2008 20:04:09

Люди знают, что Accessorizer не только генерирует средства доступа (как 1.0, так и свойства для 2.0), так и генерирует код Core Data для сохранения нестандартных атрибутов, ваши средства доступа NSSet для настраиваемых отношений «многие».

Фактически, Accessorizer поможет вам предоставить init, путь к ключу, архивирование по ключу, индексированные средства доступа, средства доступа для неупорядоченных коллекций, таких как NSSet, copyWithZone, KVO, проверка ключа, одноэлементные переопределения, dealloc, setNilForKey, нестандартное сохранение атрибутов ( Базовые данные), блокировка, headerdoc, преобразование метода в селектор, методы NSUndoManager и многое другое.

3
30.10.2011 21:59:59

Я нашел несколько файлов xtmacro в пакете Xcode.app : /Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

Установленный Xcode вер. 3.2.5.

0
30.10.2011 22:00:17

Я рад сообщить, что JetBrains решили создать достойную IDE для кодеров Objective-C.

Он называется AppCode и основан на других инструментах, таких как RubyMine и Resharper. Это не нативное какао, но оно обладает мощной способностью к рефакторингу.

http://www.jetbrains.com/objc/index.html

Я начал использовать его для своего основного проекта Objective C, и я уже влюблен. Это все еще в зачаточном состоянии, но для редактирования кода и рефакторинга это уже уносит Xcode.

Обновить

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

23
25.01.2012 20:44:20
+1 IDE AppCode действительно приветствуется на платформе Mac. XCode нужен конкурс
Kb. 22.04.2011 13:04:06
Да, я не могу не согласиться. Я был разочарован XCode в течение долгого времени. lapsusapp.co.uk/2011/04/15/appcode-the-answer-to-my-ide-woes
John Gallagher 25.04.2011 16:53:21
Я должен добавить, что на данный момент я перестал использовать AppCode - он все еще слишком медленный для чего-либо практического. Но я с нетерпением жду того времени, когда он сможет надрать зад Xcode в скоростном соревновании, а также в новых возможностях!
John Gallagher 8.08.2011 14:05:26
Между прочим ... это время сейчас. На момент написания этого комментария AppCode находится на V1.0.4 и работает быстро. На мой взгляд, больше нет причин кодировать в Xcode. AppCode намного приятнее. Как приложение V1, это потрясающе здорово.
John Gallagher 25.01.2012 17:51:24
Крис - Нет. Ничего подобного. Они также не приносят извинений за это - они не пытаются полностью заменить XCode, несмотря на мои слегка вводящие в заблуждение комментарии об обратном. На мой взгляд, с IB все в порядке - это сторона кодирования вещей, которая должна была стать лучше. AppCode спроектирован так, что вы можете оставить Xcode открытым вместе с одним и тем же проектом, и эти две работы ... ну, ладно, вместе. :)
John Gallagher 13.04.2012 17:53:58