Допустим, я открываю новый буфер в Sublime Text 3 (ST3); как я могу получить доступ к содержимому этого буфера из моей системы сборки? ie Предположим, у меня есть система сборки, которая будет запускать файл полностью node
- в этом случае я могу просто использовать $file
, но, насколько я могу судить, нет системной переменной сборки для текущего буфера содержание. Есть ли способ вытащить содержимое текущего выбранного несохраненного буфера в процесс сборки?
Как может система сборки Sublime Text получить доступ к содержимому буфера, а не к файлу?
Ответы (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 _ strong>, введите prv
, чтобы открыть P ackage R esource V iewer параметры, выберите PackageResourceViewer: Open Resource
, затем просмотрите меню и выберите Default -> exec.py
.
Удачи!