Closed xushaozhi closed 2 years ago
非常感谢您的反馈!
src/hover.ts 实现了悬浮窗口提示,省略部分内容的核心代码如下:
export function provideHover(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken | null = null): vscode.ProviderResult<vscode.Hover> {
// 获取鼠标所在位置的最小的 Object 的 ast
const astItem = ast.getAstItem(document, position);
const [node, paths] = ast.getMinAstNode(astItem, position);
// 使用对应的 Markdown 格式的字符串创建一个 vscode.Hover 对象并返回
const descTreeList = getOptionDesc(paths.slice(0, -1), astItem);
return new vscode.Hover(new vscode.MarkdownString(descTreeList.find(v => v.name === node?.name)?.desc));
}
const disposables = [
// 在这里注册它之后,鼠标悬浮时,vscode 会不断调用 provideHover
vscode.languages.registerHoverProvider(supportedLanguageList, {
provideHover,
}),
];
由于 ast 是在编辑时根据编辑的内容局部更新的,因此,可能出现 ast 与实际的内容不一致的情况(bug)。 所以,bug 出现与可能与编辑的顺序有关。 需要您提供如何复现的步骤,我才好处理这个问题。
复现步骤:
同样的步骤,在另外一台电脑上(os : Win7)可以实现完整的功能,同Gif示例。
是否是VS配置导致的? 已检查了hover相关的几个配置,是enable的。
多谢!
vscode 本身的悬浮提示是否正常? 比如类似这种的:
(property) xAxis: {
type: string;
data: string[];
}
@ren-wei 原因找到了。 插件默认“了解详情”的按钮是disable的(最右侧鼠标悬停后会出现一个expander。。。比较隐秘) 点击expander就能实现功能了。 激活一次以后就默认显示了。
而另外一台电脑默认是enable的。
谢谢,这个工具现在可以很好的使用了。
ok
Version
V1.5.4
File type
javascript
Steps to Reproduce
有些电脑可以实现完整的功能,有些只能实现补全。 请问悬浮富文本的提示的原理是怎么实现的?
Current Behavior
-API补全 ——Ok -悬浮框富文本提示——NOK
Expected Behavior
-API补全 -悬浮框富文本提示
Environment
Any additional comments?
No response