我正在写我的第一个VSCode扩展,找不到关于如何为扩展中定义的对象创建自动补全的示例。例如,我可能有一个像这样的类:
class Foo {
public aMemberVar = 'aMemberVar Member Variable';
public aFuncName = 'aMemberFunc';
public settings = {
display: {
alignment: 'left',
height: 100,
width: 100,
theme: {
on: true,
color: 'blue'
}
}
}
function aMemberFunc() {
print 'Inside `aMemberFunc()`';
}
}
现在,我希望安装了我的扩展程序的用户能够开始键入Foo。VSCode会自动向他显示该类的方法和键。
我为此创建了一个打字稿定义,如下所示:
interface IFoo {
aMemberVar: string;
aFuncName: string;
settings: {
display: {
alignment: string;
height: number;
width: number;
theme: {
on: boolean;
color: string;
};
};
};
aMemberFunc(): void;
}
现在,我的扩展名不是针对打字稿的,而是针对另一种语言的,因此,如何在打字稿以外的文件中显示自动补全功能?
您必须编写和注册CompletionItemProvider。在该提供程序中,您必须使用可以为您提供完成学历的工具。一些扩展使用可以提供该信息的外部工具,另一些扩展则通过解析可用源并创建提供所有必需的符号信息的符号表来完成所有繁重的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句