Как добавить текст в новый документ BBEdit при создании? - PullRequest
0 голосов
/ 29 декабря 2018

Я открываю много новых документов в Textwrangler / BBedit, и я хотел бы, чтобы в них всегда была дата, напечатанная вверху.Мне бы хотелось, чтобы это было автоматически, чтобы мне не приходилось каждый раз запускать скрипт.

Я новичок в BBEdit, но мне действительно нравится Textwrangler, и я использовал его годами.Я прочитал некоторую документацию по BB и думаю, что присоединение некоторого Applescript к событию может быть подходящим способом.Однако ни одно из перечисленных событий не кажется правильным, и я не хочу добавлять даты в существующие документы.

Я нашел следующую страницу, которая послужила хорошей отправной точкой: http://bbeditextras.org/wiki/index.php?title=Scripting_and_Automation

Я также нашел эти релевантные хуки из документов BB: Точки вложения приложения

  • applicationDidFinishLaunching: вызывается, когда приложение завершило запуск.
  • applicationShouldQuit: вызывается при выборе Quit (или приложение получает событие 'quit' по любой другой причине).
  • applicationDidQuit: вызывается, когда приложение завершает работу и собирается завершить работу.
  • applicationDidSwitchIn: вызывается, когда BBEdit былвыведено на передний план.
  • applicationWillSwitchOut: вызывается, когда BBEdit помещается в фон.

Точки вложения документа

  • documentDidOpen: вызывается, когда документбыл открыт и готов к использованию.(Поскольку BBEdit поддерживает несколько типов документов, ваш сценарий должен позволять аргументу быть документом любого типа.)
  • documentShouldClose: вызывается, когда приложение готовится закрыть документ.
  • documentDidClose: вызывается, когда приложение закрыло документ.
  • documentShouldSave: вызывается, когда приложение пытается определить, должен ли данный документ быть сохранен.
  • documentWillSave: вызывается, когда приложение собираетсяначать сохранение документа.(обратите внимание, что это будет вызвано только после успешного возврата из documentShouldSave.
  • documentDidSave: вызывается после успешного сохранения документа.
  • documentWillUnlock: вызывается, когда BBEdit собирается сделатьдокумент для записи. (Например, когда вы нажимаете карандаш, чтобы разблокировать документ)
  • documentDidUnlock: вызывается, когда BBEdit успешно сделал документ доступным для записи.
  • documentWillLock: вызывается, когда BBEdit собираетсясделать документ доступным только для чтения.
  • documentDidLock: вызывается, когда BBEdit успешно сделал документ доступным только для чтения.

Я не знаю, подходит ли какой-либо из них, хотя я мог бы.также попробуйте добавить некоторые сценарии в папку автозагрузки, но я не уверен, как бы я сказал, добавив дату ко всем открытым документам. Я никогда раньше не делал яблочный скрипт, так что это немного проб и ошибок.

У меня есть этот код, который я пытался запустить сам по себе, и он прекрасно работает:

tell application "BBEdit"
tell text window 1
select insertion point after (last character)
set selection to ((current date) as string)
end tell
end tell

Я просто немного потеряло том, как заставить приведенный выше код выполняться при создании файла.

1 Ответ

0 голосов
/ 29 декабря 2018

Откройте Редактор скриптов и вставьте следующий код в новый документ скрипта:

use BBEdit : application "BBEdit"
use scripting additions

on documentDidOpen(doc)
    set n to the doc's name
    set t to the doc's text as string

    if n does not start with "untitled text" then return
    if t's length > 0 then return

    set the contents of the doc to (the (current date) as text) ¬
        & linefeed & linefeed
end documentDidOpen

Сохраните его как тип script (расширение .scpt) и назовите его Document.documentDidOpen.scpt.Либо сохраните его напрямую, либо впоследствии переместите в папку ~/Library/Application Support/BBEdit/Attachment Scripts/;если папка не существует, создайте ее.

Перезапуск BBEdit не должен быть необходим, но также не может повредить.Теперь, когда вы создаете новый документ ( любого типа ), он будет сопровождаться текущей датой и временем.

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