如何通过我正在创建的扩展为我的自定义 类 提供智能感知自动完成?
How do I provide intellisense autocompletion for my custom classes, via an extension that I am creating?
我正在编写我的第一个 VSCode 扩展,但找不到有关如何为我在扩展中定义的对象创建自动完成的示例。例如,我可能有这样的 class:
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 会自动向他显示方法和键class。
我已经为此创建了一个打字稿定义:
interface IFoo {
aMemberVar: string;
aFuncName: string;
settings: {
display: {
alignment: string;
height: number;
width: number;
theme: {
on: boolean;
color: string;
};
};
};
aMemberFunc(): void;
}
现在我的扩展不是针对 typescript,而是针对不同的语言,那么我如何在 typescript 以外的文件中显示自动完成?
您必须编写并注册一个CompletionItemProvider。在该提供商中,您必须使用可以为您提供完成候选人的工具。一些扩展使用可以提供该信息的外部工具,其他扩展通过解析可用源并创建一个提供所有必需符号信息的符号 table 来完成所有繁重的工作。
我正在编写我的第一个 VSCode 扩展,但找不到有关如何为我在扩展中定义的对象创建自动完成的示例。例如,我可能有这样的 class:
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 会自动向他显示方法和键class。
我已经为此创建了一个打字稿定义:
interface IFoo {
aMemberVar: string;
aFuncName: string;
settings: {
display: {
alignment: string;
height: number;
width: number;
theme: {
on: boolean;
color: string;
};
};
};
aMemberFunc(): void;
}
现在我的扩展不是针对 typescript,而是针对不同的语言,那么我如何在 typescript 以外的文件中显示自动完成?
您必须编写并注册一个CompletionItemProvider。在该提供商中,您必须使用可以为您提供完成候选人的工具。一些扩展使用可以提供该信息的外部工具,其他扩展通过解析可用源并创建一个提供所有必需符号信息的符号 table 来完成所有繁重的工作。