Путь к документу. Adobe Brackets - PullRequest
       14

Путь к документу. Adobe Brackets

0 голосов
/ 05 октября 2019

Можно ли как-нибудь получить путь к переднему документу в скобках?

Что я пробовал:

С AppleScript это хорошо работает с большинством редакторов кода, но не сСкобки:

tell window 1 to set thePath to value of attribute "AXDocument"

С другой стороны, я заметил, что в скобках (строка меню)> меню окна есть что-то вроде:

/path/to/document.html (some-text) — Brackets

Я хотел бы получить толькопуть без: (некоторый текст) - скобки

(Имейте в виду, что (некоторый текст) я имею в виду, что это текст, который отличается на каждом компьютере. Общий случай, который находится внутри ().

1 Ответ

0 голосов
/ 05 октября 2019

Выполнение следующего:

tell application "System Events" to ¬
    get has scripting terminology of application process "Brackets"

Возвраты:

false

Итак, сценарии Скобки с AppleScript будут ограничены;однако следующий пример AppleScript код помог мне вернуть требуемую часть того, что показано для имени документа на Окно меню в скобках :

tell application "System Events" to set menuItemName to ¬
    (name of menu item 7 of menu 1 of menu bar item ¬
        "Window" of menu bar 1 of application process "Brackets")

set docPathName to do shell script ¬
    "grep -o '^.*\\.[[:alnum:]]*[^ ]'<<<" & ¬
    quoted form of menuItemName

return docPathName

Обратите внимание, что команда grep , если используется в Terminal , регулярное выражение , используемое для него, будет иметь только одну обратную косую черту , предшествующую ., чтобы экранировать его и рассматривать как литерал .;однако при использовании команды do shell script для ее правильного экранирования необходима дополнительная обратная косая черта .


In скобки , с документом, открытым и выбранным в Рабочие файлы , имя , которое отображается в меню Окно для выбранного документа, всегда равно menu item 7 и вформа:

/path/to/filename.ext (some text) — Brackets

Использование grep -o для возврата только соответствующей части того, что находится в переменной docPathName с использованием ^.*\.[[:alnum:]]*[^ ] regex , он вернет все до, но не включая " (some text) — Brackets".

Другими словами, он вернет только часть "/path/to/filename.ext".

Пониманиеdo shell script команда :

  • grep - со страницы справочника: средство поиска файлов
    • -o - печать только соответствующей частилиний.
    • ^.*\.[[:alnum:]]*[^ ] - См. Понимание RegEx: ниже.
  • <<< - Со страницы bash man : Здесь строкаs
    Вариант следующих документов, формат которого: <<< <em>word
    word раскрывается и передается команде на ее стандартный ввод.

Понимание RegEx:

  • ^.*\.[[:alnum:]]*[^ ]
    • ^ - Устанавливает позицию в начале строки.
    • . - Соответствует любому символу (кроме ограничителей строки).
    • * - Quantifier - Соответствует от нуля до неограниченного числа раз, столько раз, сколько возможно, возвращая при необходимости (жадный)).
    • \. - буквально сопоставляет символ . (с учетом регистра).
    • [[:alnum:]] - сопоставляет один символ, присутствующий в списке, соответствует буквенно-цифровому символу [a-zA-Z0-9].
    • * - Квантификатор - Сопоставляется от нуля до неограниченного числа раз, столько раз, сколько возможно, возвращая при необходимости (жадный).
    • [^ ] -Соответствует одному символу, отсутствующему в списке, соответствует символу буквально (с учетом регистра).



Примечание: пример AppleScript код только и не содержит ошибки обработка в зависимости от обстоятельств. Пользователь должен добавить любую обработку ошибок , которая может быть уместной, необходимой или желаемой. Взгляните на оператор try и error оператор в Руководство по языку AppleScript . См. Также, Работа с ошибками .

...