Вы можете создать сценарий оболочки, который будет добавлен в Xcode 8 как поведение: Xcode> Behaviors> + (для создания нового)> Запустить скрипт: (выберите файл здесь), добавьте ярлык, например Cmd + Shift + S.
Сценарий запрашивает Xcode для сохранения текущего документа. Затем он извлекает свой путь к файлу и вызывает clang-format для форматирования этого файла на месте. Clang-формат должен быть доступен, например. используя напишите в качестве менеджера пакетов, чтобы загрузить его и опубликовать свой путь для доступа к командной строке. Как обычно, руководство стиля, используемое clang-format, должно иметь имя .clang-format и должно быть в любой родительской папке исходного файла.
Вот сценарий:
#!/bin/bash
CDP=$(osascript -e '
tell application "Xcode"
activate
tell application "System Events" to keystroke "s" using {command down}
--wait for Xcode to remove edited flag from filename
delay 0.3
set last_word_in_main_window to (word -1 of (get name of window 1))
set current_document to document 1 whose name ends with last_word_in_main_window
set current_document_path to path of current_document
--CDP is assigned last set value: current_document_path
end tell ')
LOGPATH=$(dirname "$0")
LOGNAME=formatWithClangLog.txt
echo "Filepath: ${CDP}" > ${LOGPATH}/${LOGNAME}
sleep 0.6 ### during save Xcode stops listening for file changes
/usr/local/bin/clang-format -style=file -i -sort-includes ${CDP} >> ${LOGPATH}/${LOGNAME} 2>&1
# EOF
Пожалуйста, добавьте путь/USR/местные/бен к той, где ваш лязг формат исполняемого файла находится.
Счастливое кодирование!
Я тестировал это, и он делает то, что он может сделать в жестких ограничениях новой модели плагина Xcode. То, что мне не хватает, это формат для сохранения, который невозможен в соответствии с его автором. Но это вариант как можно ближе к плагину формата clang. – VisorZ