Форматирование комментариев XCode 4 (обертка строк)

Мое мнение, что многострочные комментарии в идеале должны выглядеть примерно так:

/* this is a mult-line comment, which wraps lines at some reasonable length,
 * usually approximately 80 characters. this way, comments are easy to read
 * and, with any half way capable text editor, easy to edit without having
 * to manually reshuffle lines, line breaks, and the comment leader. */

// this is a mult-line comment, which wraps lines at some reasonable length,
// usually approximately 80 characters. this way, comments are easy to read
// and, with any half way capable text editor, easy to edit without having
// to manually reshuffle lines, line breaks, and the comment leader.

/* this is a mult-line comment, which wraps lines at some reasonable length,
   usually approximately 80 characters. this way, comments are easy to read
   and, with any half way capable text editor, easy to edit without having
   to manually reshuffle lines, line breaks, and the comment leader. */

Однако XCode не поддерживает поддержку комментариев в этом стиле. Вы должны вручную нажать return в нужное время, чтобы обернуть комментарии на приличной ширине, а затем их редактирование станет полным PITA.

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

Кроме того, XCode насмехается над тем, предлагая функцию визуализации руководства по переносу на 80 символов в редакторе, но это чисто визуальная функция, без механики для ее резервного копирования. Это похоже на раздачу садового лопаты кому-то, использующему экскаватор-погрузчик.

Нужно ли мне проверять реальность здесь? Я думаю не так - или XCode крайне не хватает в форматировании комментариев в стиле абзаца?

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

Примечание: для XCode 3 я написал ручной файл script, который переформатировал текст и привязал его к горячей клавише. Я еще не понял, как это сделать в XCode 4. Но как script XCode 4 немного ортогонален этой проблеме: плохо пахнет, чтобы увеличить IDE с такими основами, мой вопрос касается ожиданий стиля и культуры разработчиков XCode.

Спасибо за ваш совет.

Ответ 1

Я согласен, что он должен быть встроен в Xcode. Но в любом случае, вот как быстро добавить его в Xcode4, создав элемент службы, который вызывает script и назначив ему комбинацию клавиш:

  • Откройте Automator. Создайте службу.
  • Установите службу, чтобы выход заменял выделенный текст и получал выделенный текст в выбранной вами копии Xcode.
  • Перетащите в действие "Запустить оболочку Script" как единственное действие в вашей службе.
  • Замените оболочку по умолчанию script "cat" на "fmt -n -s -p -w80". Это вызывает утилиту fmt, чтобы переформатировать текст, позволяя линиям начинаться с периода, сворачивая пробелы в строках, позволяя отступы абзацев, обертывая строки на столбцах с 80 символами. Проверьте справочную страницу fmt для других параметров. Очевидно, вы можете использовать орехи здесь, проложив текст через emacs или уценку или что-то еще.
  • Сохраните сервис с таким разумным именем, как "Reformat-to-80"

Теперь, когда у вас есть текст, выбранный в Xcode, вы сможете переформатировать его до 80 символов, выбрав службу через строку меню: Xcode/Services/Reformat-to-80.

Теперь назначьте ему сочетание клавиш:

  • Откройте панель предпочтений клавиатуры, перейдите на вкладку "Ярлыки клавиатуры".
  • Выберите "Ярлыки приложений" на левой панели.
  • На правой панели с помощью кнопки добавления (+) добавьте новый ярлык для копии Xcode, который вы выбрали ранее. Введите точное имя, которое вы использовали для этой услуги, и добавьте комбинацию клавиш по вашему выбору.

Теперь, в Xcode, вы можете использовать эту комбинацию клавиш для замены выделенного текста на выход оболочки script, которая переформатирует текст на

Ответ 2

Очевидно, вы можете сходить с ума, перебирая текст через emacs

После многих лет ожидания Emacs продвинулись по особенностям, когда переполняли комментарии, я это сделал. Предполагая, что вы можете преодолеть грубость вызова Xcode в Emacs для сценариев, сохраните следующий script как fill-region (или что-то подобное) и сделайте его выполнимым.

#!/usr/bin/env emacs --script
(with-temp-buffer
  ;; Would like to implement --help but Emacs eats that before I can
  ;; process it here.
  (let ((param (nth 0 command-line-args-left)))
    (if param (funcall (intern param))))

  (condition-case nil
      (while t
        (insert (read-from-minibuffer ""))
        (insert "\n"))
    (error nil))
  (fill-region (point-min) (point-max))
  (princ (buffer-string)))

Затем создайте службу Automator, которая выполняет этот script с соответствующим аргументом языка (например, fill-region c++-mode для C/С++/Objective-C) и заменяет выделенный текст.

Даже если вы не используете Emacs, это замена для замены fmt выше, что значительно лучше при форматировании комментариев.

Ответ 3

Добавление в user797758 answer: Чтобы настроить столбец, в котором его emacs script обертывает ваш текст, добавьте вызов set-fill-column перед областью заполнения вызов. Например, ниже script будет завершено до 100 символов.

#!/usr/bin/env emacs --script
(with-temp-buffer
  (let ((param (nth 0 command-line-args-left)))
    (if param (funcall (intern param))))

  (condition-case nil
      (while t
        (insert (read-from-minibuffer ""))
        (insert "\n"))
    (error nil))
  (set-fill-column 100)
  (fill-region (point-min) (point-max))
  (princ (buffer-string)))

Ответ 4

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

Select one or more lines of code to comment
    Command-/