Мне нравится Textmate "Сортировка линий в выборе". Есть ли что-то подобное для Xcode 4? Если нет, то какой лучший способ интегрировать такую функцию (плагин, Applescript,...)?
"Сортировка линий в выборе" для Xcode 4
Ответ 1
Вы можете сделать это с помощью Automator in Lion.
- Запустите Automator и выберите "Сервис"
- Найдите и перетащите "Запустить оболочку Script" на панель рабочего процесса
- Выберите "Выход заменяет выделенный текст"
- Введите
sort -f
в текстовое поле "Run Shell Script" - Сохранить
Теперь вы можете сортировать строки в любом текстовом поле. Выберите текст и щелкните правой кнопкой мыши или выберите "Управление" и выберите только что созданную службу.
Ответ 2
Через 4 года Xcode до сих пор не имеет встроенной функции, но теперь поддерживает расширения. Итак, вы здесь: "xcsort" - это расширение сортировать текст в Xcode 8. Он добавляет команду для сортировки строк при выборе.
Ответ 3
Как
В TextMate откройте узел и посмотрите, как они его реализовали;)
В частности, они использовали sort -f
для этой команды.
В Xcode
Xc4 не предлагает внешние команды, но Xc3 сделал... какую версию вы используете?
Вот обзор для системы Xc3 script: http://www.mactech.com/articles/mactech/Vol.23/23.01/2301XCode/index.html
Xc4 позволяет запускать внешний script через Behaviors, но вы не можете передавать или возвращать текст/выбор.
AppleScript
Вы можете сделать это с помощью AppleScript... каждый раз, когда я пытался сделать что-то нетривиальное с AS + Xcode, оно не получилось очень надежно (если вообще). Но это было с Xc3 - определение того, что вам нужно, может быть проще с Xc4 (унифицированный пользовательский интерфейс и все).
Я просто использую TextMate для этого.
Ответ 4
Там ошибка 10.7 и 10.8, где ярлыки для служб Automator не всегда работают до тех пор, пока меню служб не будет показано один раз из строки меню. Вы все же можете выбрать их из контекстного меню, но другой вариант - назначить ярлык для script следующим образом:
try
set old to the clipboard as record
end try
try
tell application "System Events" to keystroke "c" using command down
do shell script "export LC_CTYPE=UTF-8; pbpaste | sort -fn | pbcopy"
tell application "System Events" to keystroke "v" using command down
delay 0.05
end try
try
set the clipboard to old
end try
Попытка получить буфер обмена, когда он пуст, приводит к ошибке. pbpaste и pbcopy не поддерживают Unicode по умолчанию в среде, используемой оболочкой script.
Ответ 5
Для пользователей macOS 10. 14+ (Mojave), которые ищут ответы на вопросы epatel, Automator переименовал Services
в Quick Action
. Я был потерян на мгновение, пока я не понял это.