如何在vscode中启用嵌入式语言的智能感知和自动完成功能?

时间:2020-04-26 06:52:02

标签: javascript typescript visual-studio-code

我有一个用例,其中有一种语言X,其中支持HTML。因为,我在VScode中将文件扩展名关联为'.x',所以在X内我的HTML并没有获得自动完成和属性建议。

我尝试过的方法,

  • 为语言X创建了扩展名。在扩展名中,我提取了vscode.html并通过activate方法将其激活。
const htmlPluginId = 'vscode.html';

export const activate = () => {
  const htmlPlugin = vscode.extensions.getExtension(htmlPluginId);
  const ht = await htmlPlugin.activate();
}

这不起作用。我想HTML插件无法与语言X关联。

  • 创建了语言服务器和客户端,在其中我使用HTML语言服务来执行完成和其他任务。这有效。但是,我觉得我在重复vscode-html-languageserver中已经存在的内容。
import {getLanguageService} from 'vscode-html-languageservice';

let connection = createConnection();

let documents = new TextDocuments(TextDocument);
const htmlLanguageService = getLanguageService();

connection.onCompletion((textDocumentPosition) => {
  const document = documents.get(textDocumentPosition.textDocument.uri);
  const htmlDocument = htmlLanguageService.parseHTMLDocument(document!);
  if (htmlDocument.roots.length > 0) {
    return htmlLanguageService.doComplete(
        document!, textDocumentPosition.position, htmlDocument);
  }
});

documents.listen(connection);
connection.listen();

我想知道是否还有另一种简单的方法可以在其中使用HTML及其语言中的VSCode功能。

0 个答案:

没有答案