java vscode跳转类定义_VSCode插件开发全攻略(五)跳转到定义、自动补全、悬停提示...

跳转到定义

跳转到定义其实很简单,通过vscode.languages.registerDefinitionProvider注册一个provider,这个provider如果返回了new vscode.Location()就表示当前光标所在单词支持跳转,并且跳转到对应location。

为了示例更加有意义,我在这里写了一个支持package.json中dependencies、devDependencies跳转到对应依赖包的例子jump-to-definition.js(当然我们这里只是很简单的实现,没有考虑特殊情况,直接从node_modules文件夹下面去找):

代码如下:

/**

* 跳转到定义示例,本示例支持package.json中dependencies、devDependencies跳转到对应依赖包。

*/

const vscode = require('vscode');

const path = require('path');

const fs = require('fs');

const util = require('./util');

/**

* 查找文件定义的provider,匹配到了就return一个location,否则不做处理

* 最终效果是,当按住Ctrl键时,如果return了一个location,字符串就会变成一个可以点击的链接,否则无任何效果

* @param {*} document

* @param {*} position

* @param {*} token

*/

function provideDefinition(document, position, token) {

const fileName = document.fileName;

const workDir = path.dirname(fileName);

const word = document.getText(document.getWordRangeAtPosition(position));

const line = document.lineAt(position);

const projectPath = util.getProjectPath(document);

console.log('====== 进入 provideDefinition 方法 ======');

console.log('fileName: '

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值