vscode.workspace.openTextDocument завершается с ошибкой

#visual-studio-code #vscode-extensions

#visual-studio-code #vscode-расширения

Вопрос:

При том же значении для Uri, openTextDocument не удается получить какой-либо заметный эффект, но executeCommand успешно открывает документ.

 vscode.workspace.openTextDocument(uri);
vscode.commands.executeCommand("vscode.open", uri);
  

Есть ли какие-либо известные проблемы с vscode.workspace.openTextDocument ?

Ответ №1:

Возможно, это просто неправильное понимание того, что openTextDocument() делает. Он просто создает vscode.TextDocument экземпляр, на самом деле отображение его в пользовательском интерфейсе не зависит от этого. Вот почему он находится в vscode.workspace пространстве имен, а не vscode.window .

vscode.window.showTextDocument используется для фактического отображения документа:

Покажите данный документ в текстовом редакторе. Может быть предоставлен столбец для управления отображением редактора. Может измениться активный редактор.

 vscode.workspace.openTextDocument(...).then(
    document => vscode.window.showTextDocument(document));
  

Комментарии:

1. Я даже не заметил, что это был метод в рабочей области, а не в окне. Слишком много удобства и магии редактора (автозаполнение).