首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在VS Code中实现自定义HTML模式的点击?

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

Stack Overflow用户
提问于 2018-06-12 18:01:44
回答 1查看 418关注 0票数 2

我想在一个扩展中实现一些类似于HTML模板中的Go to定义的东西。

例如,按住ctrl键并单击路径将打开一个编辑器,其中的文件位于以下路径:

代码语言:javascript
复制
{% include "relative/path/to/snippet.html" %}

在做类似事情的任何repo上,您是否有任何指向相关文档的指针?

我对VSCode扩展和智能感知完全是个新手,所以我需要一些例子。

我猜它将包括:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 01:56:13

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

这看起来像这样:

代码语言:javascript
复制
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());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50814413

复制
相关文章

相似问题

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