2016-09-28 2 views
2

После обновления Xcode до версии 8. Очень полезный Alcatraz Plugin Manager заблокирован, и прекрасные утилиты, такие как clang-format, или выделение выделенных слов или изменение размера шрифта с помощью ярлыка исчезли.Как получить формат clang для Xcode 8?

Как можно переделать clang-format для форматирования моего текущего файла исходного кода при сохранении с шаблоном .clang-format в любом родительском каталоге исходного файла?

ответ

3

Расширение mapbox/XcodeClangFormat выглядит как перспективный способ получить формат clang, работающий с Xcode8.

Из-за ограничений расширений редактора исходного кода, к сожалению, вы можете указать только один файл .clang-формата для всех ваших проектов. «Формат с сохранением» также недоступен.

+1

Я тестировал это, и он делает то, что он может сделать в жестких ограничениях новой модели плагина Xcode. То, что мне не хватает, это формат для сохранения, который невозможен в соответствии с его автором. Но это вариант как можно ближе к плагину формата clang. – VisorZ

3

Вы можете создать сценарий оболочки, который будет добавлен в 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/местные/бен к той, где ваш лязг формат исполняемого файла находится.

Счастливое кодирование!

0

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

То, что я сделал в вашей ситуации, - это получить мою резервную копию mac и восстановить macOS и Xcode до последней версии, где все плагины производительности от Alcatraz снова работают отлично. Это повысило мою производительность.

1

Найдено эффективное решение в этом блоге - code-beautifier-in-xcode

В принципе, мы можем иметь clang-format работает как служба по Automator и вызывать его через Xcode всякий раз, когда нам нужно отформатировать код. Обратитесь к блогу за дополнительной информацией.

0

Похоже, что плагины Alcatraz вернутся к работе в Xcode 8+ при их несанкционировании. Поскольку я не в ситуации, чтобы попробовать это, я могу указать только на этот ресурс:

Осмотреть заголовок Установка на этой странице github ClangFormat-Xcode.

+0

Я пробовал после обновления до Xcode 9.2.Я без знака свой Xcode, как описано на странице github ClangFormat-Xcode, используя инструмент update_xcode_plugins. Все остальные плагины alcatraz работают снова, но плагин ClangFormat не работает. Мое решение состоит в том, чтобы использовать скрипт сверху, удалить функциональные возможности сохранения и записи задержки и связать их с ярлыком через Xcodes Behaviors. Теперь я сначала нажимаю CMD + S, затем ярлык для внешнего применения clangformat для текущего файла. – VisorZ

 Смежные вопросы

  • Нет связанных вопросов^_^