Любой эквивалент ReSharper для XCode? - PullRequest
40 голосов
/ 21 августа 2008

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

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

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

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

Ответы [ 5 ]

39 голосов
/ 22 августа 2008

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

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

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

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

    Вы можете увидеть полный список макросов Xcode по умолчанию и связанных с ними CompletionPrefix es в Crooked Spin .

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

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

23 голосов
/ 11 апреля 2011

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

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

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

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

Обновление

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

5 голосов
/ 22 августа 2008

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

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

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

3 голосов
/ 18 февраля 2009

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

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

0 голосов
/ 15 декабря 2010

Я нашел несколько файлов xtmacro в пакете Xcode.app: / Developer / Applications / Xcode.app / Содержание / Plugins / TextMacros.xctxtmacro / Содержание / Ресурсы

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...