Как я могу использовать Applescript, чтобы выбрать указанный c файл в панели проекта окна BBEdit? РЕШИТЬ - PullRequest
1 голос
/ 10 апреля 2020

решено - в конце!

Как использовать Applescript для выбора указанного c файла на панели проекта окна BBEdit?

Когда Я открываю BBEdit, без AppleScript, мой Проект открывается со списком файлов проекта в левой панели, как и должно быть.

С AppleScript , я буду sh до

  1. выберите указанный файл c на этой панели, а затем
  2. выберите «Предварительный просмотр в BBEdit» в его меню «Разметка».

Задача прямо сейчас это использовать AppleScript для # 1. Я пробовал следующее, и оно не работает.

tell application "BBEdit"
    activate

    set theFile to "compiled_corona_virus.html"

    select theFile
end tell

Я получаю эту ошибку:

error "BBEdit got an error: \"compiled_corona_virus.html\" doesn’t understand the “select” message." number -1708 from "compiled_corona_virus.html"

Я определенно посмотрел на AppleScript словарь BBEdit, который читает:

select v : Select the specified object
select [specifier] : the object to select

Для чего он стоит, я попробовал этот скрипт в редакторе скриптов Apple:

tell application "BBEdit"
    activate

    tell application "Finder" to set theFile to "Macintosh HD:Users:johnlove:Sites:www.lovetoteach.dev:Web_Site_Storage:lovesongforever.com:coronavirus:compiled_corona_virus.html"

    select theFile
end tell

Ошибка идентичного выбора?

Я также пытался использовать

open theFile

и BBEdit действительно открыл его и показал открытый theFile в самой правой панели, но без выбора этого файла в самой левой панели проекта.

решено Рич Сигел на barebones.com

Рич является автором Жемчужины Мудрости: «Когда-нибудь я буду оглядываться на все это и смеяться… пока они не успокоят меня!»

on setAutoRevealSelectedDocumentInProjectList()

    tell application "Terminal"
        activate

        tell application "System Events"
            keystroke "defaults write com.barebones.bbedit AutoRevealSelectedDocumentInProjectList -bool YES "
            keystroke return
        end tell
    end tell

end setAutoRevealSelectedDocumentInProjectList

Рич терпеливо учит нас, что крайняя левая панель окна BBEdit состоит из двух отдельных частей:

1) the Project's files on top
2) Currently Open Documents at the bottom

Если вы разрабатываете AppleScript, который открывает файл с помощью команды open (name), BBEdit будет откройте его и покажите его подсвеченным внизу под "Currentl y «Открыть документы».

ОДНАКО, это не меняет файл проекта, выбранный сверху.

ТАК, для этого программист должен вызвать Терминал с помощью:

setAutoRevealSelectedDocumentInProjectList()

СПАСИБО, Рич !!

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Используйте «открыть» вместо «выбрать». Если файл уже открыт, BBEdit выберет его. Если файл еще не открыт, BBEdit откроет его и затем выберет его. (Используете ли вы жестко запрограммированный путь или нет, это не имеет значения, поскольку файл, который вы запрашиваете для открытия BBEdit, действительно существует.)

Команда "open" ссылается на документ просто открыт.

Глагол "select" не подходит для использования с файлами; он будет работать только с объектами «документ».

Это (или что-то подобное) будет делать то, что вы хотите:

tell app "BBEdit"
    set openedDocument to (open POSIX file "/path/to/some/file.txt") -- substitute your actual file path here
    select openedDocument
end tell

Кроме того: если вы работаете в документе проекта, выбор в разделе «Проекты» не изменяется автоматически, чтобы отразить активный документ. (Выбор в разделе «В настоящее время открытые документы» всегда выполняется.)

Существует предпочтение эксперта, которое управляет этим поведением. Справка по справке «Предпочтения эксперта»:

BBEdit не будет автоматически отображать документы в списке проектов при их выборе; Вид => Показать в списке проектов работает для этой цели. Если вам нужен автомат c, раскрывающий:

defaults write com.barebones.bbedit AutoRevealSelectedDocumentInProjectList -bool YES

0 голосов
/ 10 апреля 2020

Будет ли для вас более полезным, если вам не нужно жестко задавать местоположение файла в сценарии, а вместо этого спрашивать местоположение файла во время его запуска?

set theFile to choose file

tell application "BBEdit"
    open theFile
end tell

Когда я использую этот код, Bbedit открывает файл и выбирает его на левой панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...