gpt4 book ai didi

javascript - 如何在VS Code中实现自定义HTML模式的点击?

转载 作者:行者123 更新时间:2023-12-01 01:58:23 26 4
gpt4 key购买 nike

我想在扩展中实现类似于 HTML 模板中的“转到定义”的功能。

例如,按住 Ctrl 键单击路径将打开一个编辑器,其中文件位于此路径:

{% include "relative/path/to/snippet.html" %}

您是否有任何指向相关文档的指针,在任何存储库上执行类似的操作?

我对 VSCode 扩展和 Intellisense 完全陌生,所以我需要一些示例。

我想它会包括:

  1. 解析 HTML/文本文件以查找相关的可点击区域
  2. 告诉 IntelliSense 做一些奇特的事情
  3. 实现一些奇特的东西(我最终会弄清楚这部分)

最佳答案

此功能由 DefinitionProvider 提供支持。您的扩展程序可以创建一个自定义定义提供程序,该提供程序仅返回您感兴趣的路径的结果。该提供程序将使用 registerDefinitionProvider 对于 html 语言模式

进行注册

这看起来像:

import * as vscode from 'vscode';
import * as path from 'path'

class MyProvider implements vscode.DefinitionProvider {
provideDefinition(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): vscode.ProviderResult<vscode.Definition> {

const linkText = getLinkText(document, position); // implement this

if (! linkText) {
return null;
}

const workspace = vscode.workspace.getWorkspaceFolder(document.uri);
const root = workspace ? workspace.uri : document.uri;

return new vscode.Location(
root.with({
path: path.join(root.path, linkText)
}),
new vscode.Position(0, 0));
}
}

vscode.languages.registerDefinitionProvider('html', new MyProvider());

关于javascript - 如何在VS Code中实现自定义HTML模式的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50814413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com