Пробелы в Xcode



есть ли способ заставить Xcode обрезать конечные пробелы при сохранении файла?



Я использую версию 3.1.3, если это имеет значение.

725   6  

6 ответов:

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

  • выберите Меню Скрипты > Редактировать Пользовательские Скрипты...
  • Нажмите кнопку + и выберите Новый Скрипт
  • дайте ему имя, как "полосы конечных пробелов", и дать ему ярлык, как ⌃ ⇧ R.
  • установите вход в "выбор "и выход в"заменить выбор"

затем введите следующий скрипт:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}

начиная с Xcode 4.4 пробелы будут обрезаны автоматически по умолчанию, если строка не является все пробелы. Вы также можете активировать Including whitespace-only lines чтобы исправить это, который не активен по умолчанию.

на Xcode > Preferences > Text Editing > While editing

Xcode preferences screenshot

Я использую Google Toolbox For Mac Xcode Plugin, Он добавляет параметр "правильный пробел при сохранении", который обрезает конечные пробелы при сохранении. Я очень скучал по этому от emacs.

для Xcode 8, я установил swimat Xcode плагин, для форматирования Swift кода, который удалил все конечные пробелы и пробелы-только строки.

Методы Установки

  1. установить через homebrew-cask:

    brew cask install swimat
    
  2. скачать приложение directly:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. клон extension филиала и архив в приложение Mac.

использование

после установки, вы можете запустить Swimat в Xcode через Editor -> Swimat -> Format.

Это невозможно в Xcode 3.2

Edit:

Я ответил на этот вопрос так кратко, потому что нет никакого способа сделать это правильно.

конечно, поскольку это программное обеспечение, вы можете делать все: начиная с хаков Input Manager или других способов ввода кода для перехвата системной клавиатуры, вы можете изменить свою локальную систему, чтобы сделать что-нибудь в любое время. Вы могли бы создать сценарий AppleScript действие папки (вскрикивает) или использовать запуск демон и объект FSEvents для просмотра файлов исходного кода.

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

Я не знаю решения, которое просто работает после проверки проекта из SCM. Я верю, что есть необходимость в этом и подобных сценариях настройки, поэтому я подал ошибку (radar 7203835, "Feature: more user script triggers in Xcode workflow"). Я еще не получил никакой обратной связи.

вот полный текст записи радаров:

было бы полезно иметь больше мест для запуска скриптов в Xcode.

примеры:

  1. Pre build scripts
    Сценарии предварительной сборки могут использоваться для создания предварительных условий, таких как *.xcconfig файлы или конфигурации.h заголовки. Это невозможно с "этапами сборки сценария запуска", так как отслеживание зависимостей происходит до запуска любого этапа сборки.

  2. Post build scripts
    Как и выше, но работает после сборки готовый (включая подписание кода и т. д.). Полезно для дополнительной упаковки, проверка действительности и т. д.

  3. Скрипты фиксации до / после SCM.
    Чтобы проверить проект цельность.

  4. Сценарий Сохранения Файла Pre/Post.
    Чтобы проверить / изменить файл перед сохранением. Например, запустить Cody beautifiers

  5. настраиваемые действия проекта.
    Я знаю о способности организатора определять произвольные действия. Но это функция для каждого пользователя (не часть проекта). Я хотел бы определить действия, такие как build или clean, которые отображаются в меню build и являются частью проекта.

см. здесь для Xcode4: http://www.wezm.net/technical/2011/08/strip-trailing-whitespace-xcode-4/

круто, Google toolbox для Mac теперь добавляет опцию "обрезать пробелы" для Xcode4.

http://code.google.com/p/google-toolbox-for-mac/downloads/list

Спасибо тебе, Гугл!

Comments

    Ничего не найдено.