Сохранение или получение содержимого текущего файла с помощью пользовательской задачи в VS Code - PullRequest
0 голосов
/ 27 июня 2019

Я изо всех сил пытаюсь найти простой способ сохранить или получить содержимое текущего файла (без сохранения) с помощью пользовательской задачи в VS Code.

Я собираю пользовательскую задачу для "запустить "отчет из отдельной среды в VS Code.Эта среда хранит 100% своих данных в базах данных SQL, поэтому я не могу легко перейти к этим файлам, открыть, сохранить и запустить их.Однако их IDE позволяет мне «открывать» их файлы в «инструменте, связанном с Windows», создавая отдельный временный файл для редактирования и сохранения, но не для запуска.Весь этот временный файл дает мне в отношении исходного отчета имя отчета, от которого не так много, но все еще работоспособного.

Приходит пользовательская задача, вот что я придумал, используя переменные задачи и powershell:

$currentFilePath = '${file}'
CheckCurrentFile $currentFilePath
$currentFileName = '${fileBasename}'
$credentialBoolean = $false
$sqlCredentials = GetCredentials $credentialBoolean
$connections = OpenConnections $sqlCredentials
$pathArray = RunQueries $currentFileName $connections
$reportLink = CreateLink $pathArray
prependCurrentFile $currentFilePath $reportLink
OpenLink $reportLink

В основном я проверяю, находится ли ссылка на отчет уже наверхувременного файла $ {file} (я предварительно ожидаю этого в конце задачи, чтобы избежать выполнения запросов перед каждым запуском отчета), если нет, я беру имя файла $ {fileBasename}, запрашиваю соответствующие таблицы для извлеченияего фактические пути, позволяют пользователям выбирать, какой путь будет правильным, если несколько отчетов имеют одно и то же имя внутри или на разных серверах, генерировать ссылку на отчет на основе теперь извлеченного сервера и каталога отчетов, добавляя указанную ссылку к текущему файлу вКод VS (сохранить содержимое файла в переменной, удалить содержимое, добавить ссылку, добавить старое содержимое файла), а затем открыть вновь созданную ссылку в Google Chrome.

Единственная проблема заключается в том, что задача предварительно ожидает текущеесосредоточенный файл, он повторно заполняет содержимое указанного файла, прежде чем какие-либо изменения были внесены в него в VS Code, если файл не былсохраняются перед запуском пользовательской задачи.Это сбивает с толку пользователей, так как VS Code отражает уже добавленный файл, в котором часто не вносятся изменения, внесенные с момента открытия отчета.Это так же просто, как ctrl + z, затем ctrl + s, а затем снова запустить пользовательскую задачу, но, если возможно, я надеялся, что смогу:

A) Автоматически сохранить файл, находящийся в данный момент в фокусе, перед добавлением его через ту же задачу.

B) Извлечь содержимое выбранного в данный момент файла через переменную задачи, которая содержит несохраненные изменения.

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

...