首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从VS代码扩展查找悬浮资产id

从VS代码扩展查找悬浮资产id
EN

Stack Overflow用户
提问于 2021-11-23 15:25:12
回答 1查看 99关注 0票数 3

当资产id从VS代码扩展处悬停时,我试图显示缩略图。

代码语言:javascript
复制
let disposable = vscode.languages.registerHoverProvider(['lua', 'luau'], {
        async provideHover(document, position, token) {
            const range = document.getWordRangeAtPosition(position, /rbxassetid:\/\/\d+/);
            const word = document.getText(range);

            const id = /rbxassetid:\/\/(\d+)/.exec(word)?.[1];
            
            console.log(`Found ${id}, fetching thumbnail info...`);
            const response = await fetch(`<roblox-thumbnail-api>`);
            const data = await response.json() as RobloxThumbnailResponse;
            const image = data.data?.[0]?.imageUrl;
            console.log(image);

            const mdString = new vscode.MarkdownString(`Asset: ${id}\n<img src="${image}" height="150px">`);
            mdString.supportHtml = true;
            return new vscode.Hover(mdString);
        }
    });

这主要是工作,但徘徊在一些不匹配的东西,如rbxassetid://1818仍然会显示一个缩略图。

我正在使用这个小luautest.luau脚本来测试我的扩展。

代码语言:javascript
复制
-- some random stuff that isn't using asset ids
for i=1, 10 do
    print(i)
end
print("rbxassetid://1818") -- an asset id
-- some more stuff that isn't using asset ids
for i=10, 1, -1 do
    print(i)
end
print("rbxassetid://7200003285") -- another asset id
-- some more random stuff that isn't using asset ids
for i=1, 10 do
    print(i)
end

悬停在rbxassetid://1818上就像预期的那样工作。

将字符串悬停在第5行

悬停在另一个资产id上也会像预期的那样工作。

将字符串悬停在第10行

问题是,徘徊在其他任何东西上总是会显示资产1818

在第8行悬停print

我不知道如何修复这个RegEx,这样悬停在不是资产id的东西上就不匹配文件中的第一个资产id。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-25 05:24:41

显然,document.getWordRangeAtPosition()可以返回未定义的内容,这似乎会导致document.getText()与整个文档匹配。我能够通过在调用document.getWordRangeAtPosition之后添加这个问题来解决这个问题。

代码语言:javascript
复制
if (!range) {
    return;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70083495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档