Каждый, кто часто работает с текстами и оперирует такими понятиями, как «количество знаков» или «количество слов», ощущает острую необходимость в редакторе с текстовым счетчиком. Программы Pages, Word, Byword и им подобные оснащены таким средством. Но не пропускать же через эти приложения любой текстовый фрагмент, когда нужно выяснить его объем — это не всегда удобно. Чтобы счетчик знаков, слов и абзацев был всегда под рукой, можно воспользоваться «Автоматором», создав в нем очень простую службу.

Запускайте Automator и в списке новых процессов выберите тип Служба. С самого начала настроим нашу будущую службу: в заголовке области конструктора выберите в верхних двух выпадающих списках пункты текст (text) и любой программе (any application), соответственно.

Начальная настройка службы

Теперь из бокового меню, из раздела Библиотеки > Утилиты, перетащите в область конструктора действие Запустить AppleScript (Run AppleScript). В области кода этого действия уже будет стандартная заготовка — замените ее на следующий код:

on run {input, parameters}
 try

  --Перевод входного текстового массива в строковый формат
  set MyText to input as string

  --Определение и запись в переменные числа знаков, слов и абзацев
  set CharactersNumber to the number of characters of MyText
  set WordsNumber to the number of words of MyText
  set ParagraphsNumber to the number of paragraphs of MyText

  --Формирование внешнего вида диалогового окна
  set DialogIcon to ("///System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ClippingText.icns") as POSIX file
  set DialogTitle to "В выбранном текстовом фрагменте:"
  set ResultString to "Знаков: " & CharactersNumber ¬
   & return & "Слов: " & WordsNumber ¬
   & return & "Абзацев: " & ParagraphsNumber

  --Отображение диалогового окна с определенными выше значениями
  using terms from application "Finder"
   display dialog ResultString ¬
    with icon DialogIcon ¬
    buttons {"OK"} default button 1 ¬
    with title DialogTitle
 end using terms from

 --Обработчик ошибочной ситуации
 on error errmsg number errnum
  display dialog errmsg & " [" & errnum & "]" ¬
   buttons {"OK"} default button 1 with icon stop

 end try

return input
end run

Собственно, и все. Остается только сохранить эту службу под названием, например, Статистика и проверить ее на деле — хотя бы на примере веб-браузера.

Вызов службы через контекстное меню текстового объекта

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

Диалог с информацией о выделенном текстовом фрагменте