我想在扩展程序中实现与HTML模板中的Go To Definition类似的内容。
例如,在路径上按住Ctrl键单击将打开一个包含该路径文件的编辑器:
{% include "relative/path/to/snippet.html" %}
你有任何指向相关文档的指针,任何回购做类似的事情吗?
我对VSCode扩展和Intellisense的全新内容都很陌生,所以我需要一些例子。
我想它会包括:
答案 0 :(得分:1)
此功能由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());