Как может система сборки Sublime Text получить доступ к содержимому буфера, а не к файлу?

Допустим, я открываю новый буфер в Sublime Text 3 (ST3); как я могу получить доступ к содержимому этого буфера из моей системы сборки? ie Предположим, у меня есть система сборки, которая будет запускать файл полностью node - в этом случае я могу просто использовать $file, но, насколько я могу судить, нет системной переменной сборки для текущего буфера содержание. Есть ли способ вытащить содержимое текущего выбранного несохраненного буфера в процесс сборки?


person aresnick    schedule 20.08.2014    source источник


Ответы (1)


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

"target": "my_plugin_class"

в ваш .sublime-build файл вместо стандартного

"cmd": ["external_program", "option1", "option2", "$file"]

Затем в своем плагине вы можете указать текущее представление или даже текущее окно, если у вас открыто более одной вкладки, вы хотите обработать. Ваш плагин может быть таким же простым, как запись содержимого текущего представления во временный файл, запуск его, например, с помощью Python, а затем удаление временного файла, когда вы закончите.

Чтобы получить представление о том, как выполняется стандартный процесс сборки, ознакомьтесь с Packages/Default/exec.py. Вы можете перейти к этому файлу прямо в Sublime Text 2, выбрав Preferences -> Browse Packages.... В ST3 все пакеты по умолчанию упакованы в .sublime-package zip-файлы, поэтому вам потребуется установить отличный PackageResourceViewer < / a> плагин. После установки откройте палитру команд с помощью (Ctrl / ) Shift P или _8 _ , введите prv, чтобы открыть P ackage R esource V iewer параметры, выберите PackageResourceViewer: Open Resource, затем просмотрите меню и выберите Default -> exec.py.

Удачи!

person MattDMo    schedule 21.08.2014