繁体   English   中英

在VSCode扩展中设置文本文档的语言

[英]Set language of a text document in a VSCode extension

我有一个Visual Studio Code扩展,我尝试打开一个虚拟编辑器:

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

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

这些文件总是语言:纯文本。 是否可以通过编程方式将其更改为“SQL”以获得正确的突出显示?

完整代码

我自己找到了一个解决方案:

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时的解决方案似乎不可能。

我改变了提交

自VSCode 1.28 (2018年9月) 以来 ,还可以在使用languages.setTextDocumentLanguage()创建文档设置文档的语言模式:

设置(和更改)与给定文档关联的语言

请注意 ,调用此函数将触发onDidCloseTextDocument事件,然后触发onDidOpenTextDocument事件。

这是一个打开包含{}的文档并将语言设置为JSON的简单示例:

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

打开命令选项板(视图 - >命令选项板)
运行“配置语言特定设置”
在“选择语言”下拉列表中应该有一个SQL设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM