Установить язык текстового документа в расширении VSCode

У меня есть расширение Visual Studio Code, в котором я пытаюсь открыть виртуальный редактор:

vscode.workspace.openTextDocument(vscode.Uri.parse(previewSchema + ":" + path))

context.subscriptions.push(extractHibernateLogCommand, vscode.Disposable.from(
    vscode.workspace.registerTextDocumentContentProvider(previewSchema, hibernateExtractorProvider)
));

Эти документы всегда на языке: в виде обычного текста. Можно ли программно изменить это на "SQL", чтобы подсветка была правильной?

Полный код


person GreenRover    schedule 16.08.2017    source источник


Ответы (3)


Начиная с версии VSCode 1.28 (сентябрь 2018 г. ), также можно установить языковой режим для документа после его создания с помощью _ 1_:

Установите (и измените) язык, связанный с данный документ.

Обратите внимание, что вызов этой функции вызовет событие onDidCloseTextDocument, за которым следует событие onDidOpenTextDocument.

Вот простой пример, который открывает документ, содержащий {}, и устанавливает язык JSON:

vscode.workspace.openTextDocument({content: "{}"}).then(document => {
    vscode.window.showTextDocument(document);
    vscode.languages.setTextDocumentLanguage(document, "json");
});
person Gama11    schedule 23.02.2019

Я нашел решение самостоятельно:

let options: Object = {
  content: string,
  language: "sql"
};

vscode.workspace.openTextDocument(options).then(doc => {
  vscode.window.showTextDocument(doc, vscode.ViewColumn.One);
}, err => {
  vscode.window.showErrorMessage(err);
});

Решение при использовании TextDocumentContentProvider кажется невозможным.

Фиксация с моими изменениями

person GreenRover    schedule 25.08.2017

Откройте палитру команд (Вид-> Палитра команд) и запустите «Настроить языковые настройки».
В раскрывающемся списке «Выбор языка» должна быть настройка для SQL.

person kjonach    schedule 24.08.2017
comment
Проще всего сделать это вручную, используя переключатель на нижней панели. Но я хочу делать это автоматически - person GreenRover; 24.08.2017